SlideShare a Scribd company logo
Scalability and Performance Best Practices Laura Thomson OmniTI [email_address]
Standing in for George
Scalability vs. Performance Scalability:  Ability to gracefully handle additional traffic while maintaining service quality. Performance:  Ability to execute a single task quickly. Often linked, not the same.
Why are Scalability and Performance Important? No hope of growth otherwise. Scalability means you can handle service commitments of the future. Performance means you can handle the service commitments of today. Both act symbiotically to mean cost-efficient growth.

Recommended for you

Fb Sales Enbl 1 4
Fb Sales Enbl 1 4Fb Sales Enbl 1 4
Fb Sales Enbl 1 4

TSM FastBack provides disk-based, block-level backups for remote office data with near-instant file, folder, volume, and system recovery from any point in time. It integrates with IBM Tivoli Storage Manager for centralized data protection and disaster recovery capabilities. Key benefits include eliminating backup windows, reducing recovery time objectives (RTO), and providing flexible recovery options without dedicated on-site IT staff.

tsmfastback
Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013

This presentation provides an introduction to the (subjectively) most useful tools for debugging on Windows.

windows tools debug java ibm
Hadoop availability
Hadoop availabilityHadoop availability
Hadoop availability

The document discusses availability and reliability in distributed systems. It describes that for a system to be truly reliable, it must be fault-tolerant, highly available, recoverable, consistent, scalable, have predictable performance, and be secure. It then discusses how the namenode is a single point of failure in Hadoop, and describes various approaches to improve availability through replicating metadata and using secondary or backup nodes.

hadoop
Why PHP? PHP is a completely runtime language Compiled, statically typed languages are faster. BUT: Scalability is (almost) never a factor of the language you use Most bottlenecks are not in user code PHP’s heavy lifting is done in C PHP is fast to learn PHP is fast to write PHP is easy to extend
When to Start Premature optimization is the root of all evil – Donald Knuth Without direction and goals, your code will only get more obtuse with little hope of actual improvement in scalability or speed. Design for refactoring, so that when you need to make changes, you can.
Knowing When to Stop Optimizations get exponentially more expensive as they are accrued. Strike a balance between performance, scalability and features. Unless you ship, all the speed in the world is meaningless.
No Fast = True Optimization takes effort. Some are easier than others, but no silver bullet. Be prepared to get your hands dirty.

Recommended for you

W23 - Advanced Performance Tactics for WebSphere Performance
W23 - Advanced Performance Tactics for WebSphere PerformanceW23 - Advanced Performance Tactics for WebSphere Performance
W23 - Advanced Performance Tactics for WebSphere Performance

IBM European WebSphere Technical Conference 2010 presentation Application performance issues can be difficult to resolve but can seriously impact your business. In this session we provide you with a solid overview of performance best practices for the current WebSphere Application Server runtime. We will go over a number key components and provide you with real examples of application performance issues from the field. Topics include the JVM and recent advances in Garbage Collection, JMS, the EJB container, the Dynamic Cache Service, HA Manager, thread pooling and transaction management. Note that this session is not an overview of product benchmarks.

ibmwebspheretechnical
High performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructureHigh performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructure

This document discusses various techniques for optimizing PHP application performance, including network optimization using load balancers, database scaling using replication and caching, application optimization using profiling and caching, and server optimization using clustering. It recommends using tools like Xdebug and Zend Server's code tracing and profiling to identify bottlenecks and optimize applications. The overall message is that a holistic approach considering the network, databases, applications and servers is needed to achieve high performance PHP applications.

high performancephpzendcon
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 EnvironmentsLOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments

The document discusses IBM Lotus Notes and Domino 8.5 certification. It outlines the new core certification paths and exams released in 2011. Individuals looking to certify on Notes Domino 8.5 should pass exams LOT-925 and LOT-926. LOT-926 focuses on managing and maintaining Notes Domino 8.5 environments and covers topics like policies, installation, mail, and security.

lot-926domino 8.5 administrationlotus domino 8.5
General Best Practices Profile early, profile often. Dev-ops cooperation is essential. Test on production data. Track and trend. Assumptions will burn you.
Scalability Best Practices Decouple. Cache. Federate. Replicate. Avoid straining hard-to-scale resources.
Performance Best Practices Use a compiler cache. Be mindful of using external data sources. Avoid recursive or heavy looping code. Don’t try to outsmart PHP. Build with caching in mind.
1. Profiling Pick a profiling tool and learn it in and out. APD, XDebug, Zend Platform Learn your system profiling tools strace, dtrace, ltrace Effective debugging profiling is about spotting deviations from the norm. Effective habitual profiling is about making the norm better. Practice, practice, practice.

Recommended for you

Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12

The document discusses garbage collection, tuning, and monitoring the Java Virtual Machine (JVM) in Oracle E-Business Suite 11i and R12. It begins by introducing garbage collection and its role in memory management. It then covers key garbage collection concepts like generations, collectors, and metrics for measurement. The document also lists some notable JVM parameters and provides guidance on monitoring the JVM. It concludes by mentioning future changes related to the JRockit JVM.

memoryjvm tuningoracle
Chapter5
Chapter5Chapter5
Chapter5

The document discusses the evolution of the user interface design for Microsoft Windows CE. It describes three iterations: the Handheld PC from 1995 which resembled a desktop PC but had usability issues; the Palm PC from 1998 which had a smaller screen and alternative inputs like handwriting but data entry was still difficult; and the Auto PC from 1998 which was designed for in-car use without a touchscreen or stylus and emphasized voice commands. While Windows CE aimed for consistency with desktop Windows, usability tests revealed issues at each stage and consistency alone did not guarantee success.

Inform2015 - What's New in Domino 9 & 9.0.1 for Admins
Inform2015 - What's New in Domino 9 & 9.0.1 for AdminsInform2015 - What's New in Domino 9 & 9.0.1 for Admins
Inform2015 - What's New in Domino 9 & 9.0.1 for Admins

The document discusses new features in IBM Domino 9 and 9.0.1, including improvements to the Database Management Tool (DBMT) for automating database maintenance tasks. DBMT allows administrators to compact databases, purge deletion stubs, expire soft deletes, and perform other maintenance without interrupting users. It can run maintenance tasks in parallel and ensure tasks are completed even if they exceed allocated time frames. The document also covers new options for DBMT related to mail file compaction and delivery failover in clustered environments.

2. Dev-Ops Cooperation The most critical difference in organizations that handles crises well. Production problems are time-critical and usually hard to diagnose. Build team unity before emergencies happen. Operations staff should provide feedback on behavior changes when code is pushed live. Development staff must heed warnings from operations staff. Established code launch windows, developer escalation procedures, and fallback plans are very helpful.
3. Test on Production(-ish) Data Code behavior (especially performance) is often data driven. Using data that looks like production data will minimize surprises. Having a QA environment that simulates production load on   all components will highlight problems before they occur.
4. Track and Trend Understanding your historical performance characteristics is essential for spotting emerging problems. Access logs (with hi-res timings) System metrics Application and query profiling data
Access log timings Apache 2 natively supports hi-res timings For Apache 1.3 you’ll need to patch it (timings in seconds = not very useful)

Recommended for you

IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
IAmLUG presentation: Domino Admin Best Practices - Hunting the GremlinsIAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins

Notes / Domino administrator best practices for finding the gremlins in your environment and avoiding them. This session was presented at IamLUG by David Hablewitz and Kim Greene.

lotusibmlotus notes
JavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaJavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for Java

This document summarizes a presentation on secure engineering practices for Java given at JavaOne 2013. It discusses the importance of software assurance over just security controls. It emphasizes that achieving a high level of software assurance requires attention to security throughout the development lifecycle, including risk assessment, secure coding practices, security testing, documentation, and incident response. The presentation recommends that development teams understand security risks and threats in order to build secure software.

javaone security java
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac ProMedia and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro

In our tests, we found that the HP Z8 tower with Intel Xeon Gold 6226R processors completed three sample media and entertainment tasks in up to 44 percent less time than the Apple Mac Pro with Intel Xeon W-3275M processor, while adding only 11 percent to the purchase price.

z by hphpz
5. When you assume… Systems are complex and often break in unexpected ways. If you knew how your system was broken, you probably would have designed it better in the first place. Confirming your suspicions is almost always cheaper than acting on them. Time is your most precious commodity.
6. Decouple Isolate performance failures. Put refactoring time only where needed. Put hardware only where needed. Impairs your ability to efficiently join two decoupled application data sets.
Example:  Static versus dynamic content Apache + PHP is fast for dynamic content Waste of resources to serve static content from here: images, CSS, JavaScript Move static content to a separate faster solution for static content e.g. lighttpd on a separate box -> on a geographically distributed CDN
Example: Session data Using the default session store limits scale out Decouple session data by putting it elsewhere:  In a database In a distributed cache In cookies

Recommended for you

Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...

Deploying a Dell EMC PowerEdge R740 with pre-installed Microsoft Windows Server 2016 Standard took less time and fewer steps than deploying the same server without it

dell emcdell emc poweredge r740microsoft windows server 2016 standard
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2

Daniel Petri from MCS Israel presented on the Infrastructure & Management User Group on how to conduct a clean migration from AD 2003 to AD 2008 R2.

Delphix
DelphixDelphix
Delphix

Delphix allows databases to run as software rather than hardware, using less space while maintaining full functionality and performance. It turns database servers into a single, virtual authority that can consolidate databases and instantly provision copies for development, testing, and other non-production uses. This cuts capital expenses by 50% and operational expenses by 90% while accelerating innovation by eliminating the time and costs associated with copying and moving databases between environments.

7. Cache Caching is the core of most optimizations. Fundamental question is: how dynamic does this bit have to be. Many levels of caching Algorithmic Data Page/Component Good technologies out there: APC (local data) Memcache (distributed data) Squid (distributed page/component/data) Bespoke
Caching examples Compiler cache (APC or Zend) MySQL query cache (tune and use where possible) Cache generated pages or iframes (disk or memcache) Cache calculated data, datasets, page fragments (memcache) Cache static content (squid)
8. Federate Data federation is taking a single data set and spreading it across multiple database/application servers. Great technique for scaling data. Does not inherently promote data reliability. Reduces your ability to join within the data set. Increases overall internal connection establishment rate.
9. Replicate Replication is making synchronized copies of data available in more than one place. Useful scaling technique, very popular in ‘modern’ PHP architectures. Mostly usable for read-only data. High write rates can make it difficult to keep slaves in sync.

Recommended for you

Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes

My Top 10 Scalability Mistakes talk updated for O'Reilly's Open Source Convention in Portland, OR 2008

oscon08oscon
Apache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 MistakesApache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 Mistakes

The document provides tips on common scalability mistakes made when designing web applications and strategies to avoid them. It discusses the importance of considering scalability from the beginning, avoiding blocking calls, caching frequently accessed data, optimizing database and file system usage, and using tools like profilers to identify bottlenecks. The key is designing applications that can scale both up and down based on current needs through a proactive, process-oriented approach.

apacheconapachecon08apachecon08
Top 30 Scalability Mistakes
Top 30 Scalability MistakesTop 30 Scalability Mistakes
Top 30 Scalability Mistakes

An extended version of my famed Top 10 Scalability Mistakes talk given at various conferences around the world.

phpzend
Problems On the slave, you should see two threads running: an I/O thread, that reads data from the master, and an SQL thread, that updates the replicated tables. (You can see these with SHOW PROCESSLIST) Since updates on the master occur in *multiple* threads, and on the slave in a *single* thread, the updates on the slave take longer. Slaves have to use a single SQL thread to make sure queries are executed in the same order as on the master
The more writes you do, the more likely the slaves are to get behind, and the further behind they will get. At a certain point the only solution is to stop the slave and re-image from the master. Or use a different solution: multi master, federation,  split architectures between replication and federation, etc
Other uses of replication Remember replication has other uses than scale out Failover Backups
10. Avoid Straining Hard-to-Scale Resources Some resources are inherently hard to scale ‘ Uncacheable’ data Data with a very high read+write rate Non-federatable data Data in a black-box Be aware of these limitations and be extra careful with these resources. Try and poke holes in the assumptions about why the data is hard to manage.

Recommended for you

Scaling Web Apps P Falcone
Scaling Web Apps P FalconeScaling Web Apps P Falcone
Scaling Web Apps P Falcone

To scale PHP web applications: 1) Focus on fundamentals like testable code, efficient data structures and algorithms, and designing for change. 2) Optimize performance through caching, using databases efficiently, and leveraging PHP features. 3) Employ techniques like asynchronous processing, parallel computing, and service-oriented architectures to spread load across servers.

 
by jedt
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp North

This document provides information on improving Drupal performance through various techniques including performance testing, caching, optimizing database and server configurations, using tools like Varnish, load balancers, and CDNs, and addressing inefficient code. It also discusses a case study of using scalable cloud hosting and caching strategies to handle peak traffic for a site during major awards events.

drupalperformance
Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes

A very successful talk where in I discuss the top 10 failures of organizations I have personally experienced when trying to scale. More than just performance!

11. Compiler Cache PHP natively reparses a script and its includes whenever it executes it. This is wasteful and a huge overhead. A compiler cache sits inside the engine and caches the parsed optrees. The closest thing to ‘fast = true’ In PHP5 the real alternatives are APC and Zend Platform.
12. Xenodataphobia External data (RDBMS, App Server, 3 rd  Party data feeds) are the number one cause of application bottlenecks. Minimize and optimize your queries. 3 rd  Party data feeds/transfers are unmanageable.  Do what you can to take them out of the critical path.
Managing external data and services Cache it (beware of AUPs for APIs) Load it dynamically (iframes/XMLHttpRequest) Batch writes Ask how critical the data is to your app.
Query tuning Query tuning is like PHP tuning: what you think is slow may not be slow. Benchmarking is the only way to truly test this.  When tuning, change one thing at a time Your toolkit: EXPLAIN Slow Query Log mytop Innotop Query profilers

Recommended for you

Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf

This document discusses using XHProf to perform performance tuning of PHP applications. It begins with an introduction of the speaker and their company Pardot. It then provides an overview of XHProf including how to install, configure, and use it to profile PHP applications. The document outlines various performance tips for PHP such as optimizing array operations, managing memory efficiently, and improving database queries. It also walks through some examples of profiling a sample Symfony application that involves getting click data from a database. The examples demonstrate how to optimize queries and object hydration to improve performance.

engineeringsalesforcexhprof
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability

The document provides tips for building a scalable and high-performance website, including using caching, load balancing, and monitoring. It discusses horizontal and vertical scalability, and recommends planning, testing, and version control. Specific techniques mentioned include static content caching, Memcached, and the YSlow performance tool.

UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015

I presented to the Georgia Southern Computer Science ACM group. Rather than one topic for 90 minutes, I decided to do an UnConference. I presented them a list of 8-9 topics, let them vote on what to talk about, then repeated. Each presentation was ~8 minutes, (Except Career) and was by no means an attempt to explain the full concept or technology. Only to wake up their interest.

Indexing problems Lack of appropriate indexing Create relevant indexes.  Make sure your queries use them.  (EXPLAIN is your friend here.) The order of multi-column indexes is important Remove unused indexes to speed writes
Schema design (MySQL) Use the smallest data type possible Use fixed width rows where possible (prefer char over varchar: disk is cheap) Denormalize where necessary Take static data out of the database or use MEMORY tables Use the appropriate storage engine for each table
Queries Minimizing the number of queries is always a good start.  Web pages that need to make 70-80 queries to be rendered need a different strategy: Cache the output Cache part of the output Redesign your schema so you can reduce the number of queries Decide if you can live without some of these queries. Confirm that your queries are using the indexes you think that they are Avoid correlated subqueries where possible Stored procedures are notably faster
13. Be Lazy Deeply recursive code is expensive in PHP. Heavy manual looping usually indicates that you are doing something wrong. Learn PHP’s idioms for dealing with large data sets or parsing/packing data.

Recommended for you

Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010

Hadoop Summit 2010 - application track Data Applications and Infrastructure at LinkedIn Jay Kreps, LinkedIn

2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real

This document discusses how to scale PHP applications to meet high demand. It begins by noting that large companies like Facebook and Wikipedia use PHP. It then outlines several techniques for scaling PHP, including: using opcode caches to improve performance; storing sessions in a database rather than disk; leveraging in-memory data caches like Memcached and Redis; doing blocking work in background tasks via queues; and utilizing HTTP caching with a reverse proxy cache. The document emphasizes that performance is important for user experience and business results, and that these techniques can help PHP applications handle high traffic loads.

dustin whittlescaling php in the real worldphp
Domino server and application performance in the real world
Domino server and application performance in the real worldDomino server and application performance in the real world
Domino server and application performance in the real world

The document provides tips and strategies for optimizing Domino server performance, with a focus on addressing disk I/O bottlenecks. It recommends separating database files onto different physical disks based on I/O needs, avoiding journaling file systems for transaction logs, optimizing RAID configurations, and addressing inefficient views and design patterns that can degrade performance. Specific issues covered include transaction logging, indexing, database design, and application usage patterns.

dominoserverperformance
14. Don’t Outsmart Yourself Don’t try to work around perceived inefficiencies in PHP  (at least not in userspace code!) Common bad examples here include: Writing parsers in PHP that could be done with a simple regex. Trying to circumvent connection management in networking/database libraries. Performing complex serializations that could be done with internal extensions. Calling out to external executables when a PHP extension can give you the same information. Reimplementing something that already exists in PHP
15. Caching Mentioned before, but deserves a second slide: caching is the most important tool in your tool box. For frequently accessed information, even a short cache lifespan can be productive. Watch your cache hit rates.  A non-effective cache is worse than no cache.
Thanks! There are longer versions of this talk at  http://omniti.com/~george/talks/ There are good books on these topics as well: Advanced PHP Programming, G. Schlossnagle Building Scalable Web Sites, C. Henderson Scalable Internet Architectures, T. Schlossnagle Compulsory plug: OmniTI is hiring for a number of positions (PHP, Perl, C, UI design) http://omniti.com/careers

More Related Content

What's hot

70-410 Practice Test
70-410 Practice Test70-410 Practice Test
70-410 Practice Test
wrailebo
 
You don't want to do it like that
You don't want to do it like thatYou don't want to do it like that
You don't want to do it like that
Sharon James
 
Quickr
QuickrQuickr
Quickr
dominion
 
Fb Sales Enbl 1 4
Fb Sales Enbl 1 4Fb Sales Enbl 1 4
Fb Sales Enbl 1 4
petchpaitoon
 
Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013
MattKilner
 
Hadoop availability
Hadoop availabilityHadoop availability
Hadoop availability
Subhas Kumar Ghosh
 
W23 - Advanced Performance Tactics for WebSphere Performance
W23 - Advanced Performance Tactics for WebSphere PerformanceW23 - Advanced Performance Tactics for WebSphere Performance
W23 - Advanced Performance Tactics for WebSphere Performance
Hendrik van Run
 
High performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructureHigh performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructure
mkherlakian
 
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 EnvironmentsLOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
Marek Zawadzki
 
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
sidg75
 
Chapter5
Chapter5Chapter5
Chapter5
webuploader
 
Inform2015 - What's New in Domino 9 & 9.0.1 for Admins
Inform2015 - What's New in Domino 9 & 9.0.1 for AdminsInform2015 - What's New in Domino 9 & 9.0.1 for Admins
Inform2015 - What's New in Domino 9 & 9.0.1 for Admins
Jared Roberts
 
IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
IAmLUG presentation: Domino Admin Best Practices - Hunting the GremlinsIAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
David Hablewitz
 
JavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaJavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for Java
Chris Bailey
 
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac ProMedia and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Principled Technologies
 
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
Principled Technologies
 
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
Amit Gatenyo
 
Delphix
DelphixDelphix

What's hot (18)

70-410 Practice Test
70-410 Practice Test70-410 Practice Test
70-410 Practice Test
 
You don't want to do it like that
You don't want to do it like thatYou don't want to do it like that
You don't want to do it like that
 
Quickr
QuickrQuickr
Quickr
 
Fb Sales Enbl 1 4
Fb Sales Enbl 1 4Fb Sales Enbl 1 4
Fb Sales Enbl 1 4
 
Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013
 
Hadoop availability
Hadoop availabilityHadoop availability
Hadoop availability
 
W23 - Advanced Performance Tactics for WebSphere Performance
W23 - Advanced Performance Tactics for WebSphere PerformanceW23 - Advanced Performance Tactics for WebSphere Performance
W23 - Advanced Performance Tactics for WebSphere Performance
 
High performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructureHigh performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructure
 
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 EnvironmentsLOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
LOT-926 Managing and Maintaining IBM Lotus Notes and Domino 8.5 Environments
 
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
Garbage Collection, Tuning And Monitoring JVM In EBS 11i And R12
 
Chapter5
Chapter5Chapter5
Chapter5
 
Inform2015 - What's New in Domino 9 & 9.0.1 for Admins
Inform2015 - What's New in Domino 9 & 9.0.1 for AdminsInform2015 - What's New in Domino 9 & 9.0.1 for Admins
Inform2015 - What's New in Domino 9 & 9.0.1 for Admins
 
IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
IAmLUG presentation: Domino Admin Best Practices - Hunting the GremlinsIAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
IAmLUG presentation: Domino Admin Best Practices - Hunting the Gremlins
 
JavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaJavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for Java
 
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac ProMedia and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
 
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
Spend less time, effort, and money by choosing a Dell EMC server with pre-ins...
 
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
Upgrading AD from Windows Server 2003 to Windows Server 2008 R2
 
Delphix
DelphixDelphix
Delphix
 

Similar to scale_perf_best_practices

Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes
John Coggeshall
 
Apache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 MistakesApache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 Mistakes
John Coggeshall
 
Top 30 Scalability Mistakes
Top 30 Scalability MistakesTop 30 Scalability Mistakes
Top 30 Scalability Mistakes
John Coggeshall
 
Scaling Web Apps P Falcone
Scaling Web Apps P FalconeScaling Web Apps P Falcone
Scaling Web Apps P Falcone
jedt
 
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp North
Philip Norton
 
Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes
John Coggeshall
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
Salesforce Engineering
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability
Jason Ragsdale
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
Christopher Curtin
 
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Yahoo Developer Network
 
2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real
PHP Conference Argentina
 
Domino server and application performance in the real world
Domino server and application performance in the real worldDomino server and application performance in the real world
Domino server and application performance in the real world
dominion
 
PHP Performance: Principles and tools
PHP Performance: Principles and toolsPHP Performance: Principles and tools
PHP Performance: Principles and tools
10n Software, LLC
 
Front Range PHP NoSQL Databases
Front Range PHP NoSQL DatabasesFront Range PHP NoSQL Databases
Front Range PHP NoSQL Databases
Jon Meredith
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
guest18a0f1
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
mclee
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
royans
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Bhupesh Bansal
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedIn
Hadoop User Group
 
Introduction to Redis and its features.pptx
Introduction to Redis and its features.pptxIntroduction to Redis and its features.pptx
Introduction to Redis and its features.pptx
Knoldus Inc.
 

Similar to scale_perf_best_practices (20)

Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes
 
Apache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 MistakesApache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 Mistakes
 
Top 30 Scalability Mistakes
Top 30 Scalability MistakesTop 30 Scalability Mistakes
Top 30 Scalability Mistakes
 
Scaling Web Apps P Falcone
Scaling Web Apps P FalconeScaling Web Apps P Falcone
Scaling Web Apps P Falcone
 
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp North
 
Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
 
2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real
 
Domino server and application performance in the real world
Domino server and application performance in the real worldDomino server and application performance in the real world
Domino server and application performance in the real world
 
PHP Performance: Principles and tools
PHP Performance: Principles and toolsPHP Performance: Principles and tools
PHP Performance: Principles and tools
 
Front Range PHP NoSQL Databases
Front Range PHP NoSQL DatabasesFront Range PHP NoSQL Databases
Front Range PHP NoSQL Databases
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
 
Web20expo Scalable Web Arch
Web20expo Scalable Web ArchWeb20expo Scalable Web Arch
Web20expo Scalable Web Arch
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedIn
 
Introduction to Redis and its features.pptx
Introduction to Redis and its features.pptxIntroduction to Redis and its features.pptx
Introduction to Redis and its features.pptx
 

More from webuploader

Michael_Hulme_Banff_Social_Networking
Michael_Hulme_Banff_Social_NetworkingMichael_Hulme_Banff_Social_Networking
Michael_Hulme_Banff_Social_Networking
webuploader
 
socialpref
socialprefsocialpref
socialpref
webuploader
 
cyberSecurity_Milliron
cyberSecurity_MillironcyberSecurity_Milliron
cyberSecurity_Milliron
webuploader
 
PJO-3B
PJO-3BPJO-3B
PJO-3B
webuploader
 
LiveseyMotleyPresentation
LiveseyMotleyPresentationLiveseyMotleyPresentation
LiveseyMotleyPresentation
webuploader
 
FairShare_Morningstar_022607
FairShare_Morningstar_022607FairShare_Morningstar_022607
FairShare_Morningstar_022607
webuploader
 
3_System_Requirements_and_Scaling
3_System_Requirements_and_Scaling3_System_Requirements_and_Scaling
3_System_Requirements_and_Scaling
webuploader
 
Mak3
Mak3Mak3
visagie_freebsd
visagie_freebsdvisagie_freebsd
visagie_freebsd
webuploader
 
freebsd-watitis
freebsd-watitisfreebsd-watitis
freebsd-watitis
webuploader
 
BPotter-L1-05
BPotter-L1-05BPotter-L1-05
BPotter-L1-05
webuploader
 
FreeBSD - LinuxExpo
FreeBSD - LinuxExpoFreeBSD - LinuxExpo
FreeBSD - LinuxExpo
webuploader
 
CLI313
CLI313CLI313
CLI313
webuploader
 
CFInterop
CFInteropCFInterop
CFInterop
webuploader
 
securing_syslog_onFreeBSD
securing_syslog_onFreeBSDsecuring_syslog_onFreeBSD
securing_syslog_onFreeBSD
webuploader
 
bh-us-02-murphey-freebsd
bh-us-02-murphey-freebsdbh-us-02-murphey-freebsd
bh-us-02-murphey-freebsd
webuploader
 
COMO2006
COMO2006COMO2006
COMO2006
webuploader
 
FacebookandMySpace
FacebookandMySpaceFacebookandMySpace
FacebookandMySpace
webuploader
 
SocialNetworkingSitesandtheJobSearch
SocialNetworkingSitesandtheJobSearchSocialNetworkingSitesandtheJobSearch
SocialNetworkingSitesandtheJobSearch
webuploader
 

More from webuploader (20)

Michael_Hulme_Banff_Social_Networking
Michael_Hulme_Banff_Social_NetworkingMichael_Hulme_Banff_Social_Networking
Michael_Hulme_Banff_Social_Networking
 
socialpref
socialprefsocialpref
socialpref
 
cyberSecurity_Milliron
cyberSecurity_MillironcyberSecurity_Milliron
cyberSecurity_Milliron
 
PJO-3B
PJO-3BPJO-3B
PJO-3B
 
LiveseyMotleyPresentation
LiveseyMotleyPresentationLiveseyMotleyPresentation
LiveseyMotleyPresentation
 
FairShare_Morningstar_022607
FairShare_Morningstar_022607FairShare_Morningstar_022607
FairShare_Morningstar_022607
 
3_System_Requirements_and_Scaling
3_System_Requirements_and_Scaling3_System_Requirements_and_Scaling
3_System_Requirements_and_Scaling
 
Mak3
Mak3Mak3
Mak3
 
visagie_freebsd
visagie_freebsdvisagie_freebsd
visagie_freebsd
 
freebsd-watitis
freebsd-watitisfreebsd-watitis
freebsd-watitis
 
BPotter-L1-05
BPotter-L1-05BPotter-L1-05
BPotter-L1-05
 
FreeBSD - LinuxExpo
FreeBSD - LinuxExpoFreeBSD - LinuxExpo
FreeBSD - LinuxExpo
 
CLI313
CLI313CLI313
CLI313
 
CFInterop
CFInteropCFInterop
CFInterop
 
securing_syslog_onFreeBSD
securing_syslog_onFreeBSDsecuring_syslog_onFreeBSD
securing_syslog_onFreeBSD
 
bh-us-02-murphey-freebsd
bh-us-02-murphey-freebsdbh-us-02-murphey-freebsd
bh-us-02-murphey-freebsd
 
evans
evansevans
evans
 
COMO2006
COMO2006COMO2006
COMO2006
 
FacebookandMySpace
FacebookandMySpaceFacebookandMySpace
FacebookandMySpace
 
SocialNetworkingSitesandtheJobSearch
SocialNetworkingSitesandtheJobSearchSocialNetworkingSitesandtheJobSearch
SocialNetworkingSitesandtheJobSearch
 

Recently uploaded

Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 

Recently uploaded (20)

Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 

scale_perf_best_practices

  • 1. Scalability and Performance Best Practices Laura Thomson OmniTI [email_address]
  • 3. Scalability vs. Performance Scalability: Ability to gracefully handle additional traffic while maintaining service quality. Performance: Ability to execute a single task quickly. Often linked, not the same.
  • 4. Why are Scalability and Performance Important? No hope of growth otherwise. Scalability means you can handle service commitments of the future. Performance means you can handle the service commitments of today. Both act symbiotically to mean cost-efficient growth.
  • 5. Why PHP? PHP is a completely runtime language Compiled, statically typed languages are faster. BUT: Scalability is (almost) never a factor of the language you use Most bottlenecks are not in user code PHP’s heavy lifting is done in C PHP is fast to learn PHP is fast to write PHP is easy to extend
  • 6. When to Start Premature optimization is the root of all evil – Donald Knuth Without direction and goals, your code will only get more obtuse with little hope of actual improvement in scalability or speed. Design for refactoring, so that when you need to make changes, you can.
  • 7. Knowing When to Stop Optimizations get exponentially more expensive as they are accrued. Strike a balance between performance, scalability and features. Unless you ship, all the speed in the world is meaningless.
  • 8. No Fast = True Optimization takes effort. Some are easier than others, but no silver bullet. Be prepared to get your hands dirty.
  • 9. General Best Practices Profile early, profile often. Dev-ops cooperation is essential. Test on production data. Track and trend. Assumptions will burn you.
  • 10. Scalability Best Practices Decouple. Cache. Federate. Replicate. Avoid straining hard-to-scale resources.
  • 11. Performance Best Practices Use a compiler cache. Be mindful of using external data sources. Avoid recursive or heavy looping code. Don’t try to outsmart PHP. Build with caching in mind.
  • 12. 1. Profiling Pick a profiling tool and learn it in and out. APD, XDebug, Zend Platform Learn your system profiling tools strace, dtrace, ltrace Effective debugging profiling is about spotting deviations from the norm. Effective habitual profiling is about making the norm better. Practice, practice, practice.
  • 13. 2. Dev-Ops Cooperation The most critical difference in organizations that handles crises well. Production problems are time-critical and usually hard to diagnose. Build team unity before emergencies happen. Operations staff should provide feedback on behavior changes when code is pushed live. Development staff must heed warnings from operations staff. Established code launch windows, developer escalation procedures, and fallback plans are very helpful.
  • 14. 3. Test on Production(-ish) Data Code behavior (especially performance) is often data driven. Using data that looks like production data will minimize surprises. Having a QA environment that simulates production load on all components will highlight problems before they occur.
  • 15. 4. Track and Trend Understanding your historical performance characteristics is essential for spotting emerging problems. Access logs (with hi-res timings) System metrics Application and query profiling data
  • 16. Access log timings Apache 2 natively supports hi-res timings For Apache 1.3 you’ll need to patch it (timings in seconds = not very useful)
  • 17. 5. When you assume… Systems are complex and often break in unexpected ways. If you knew how your system was broken, you probably would have designed it better in the first place. Confirming your suspicions is almost always cheaper than acting on them. Time is your most precious commodity.
  • 18. 6. Decouple Isolate performance failures. Put refactoring time only where needed. Put hardware only where needed. Impairs your ability to efficiently join two decoupled application data sets.
  • 19. Example: Static versus dynamic content Apache + PHP is fast for dynamic content Waste of resources to serve static content from here: images, CSS, JavaScript Move static content to a separate faster solution for static content e.g. lighttpd on a separate box -> on a geographically distributed CDN
  • 20. Example: Session data Using the default session store limits scale out Decouple session data by putting it elsewhere: In a database In a distributed cache In cookies
  • 21. 7. Cache Caching is the core of most optimizations. Fundamental question is: how dynamic does this bit have to be. Many levels of caching Algorithmic Data Page/Component Good technologies out there: APC (local data) Memcache (distributed data) Squid (distributed page/component/data) Bespoke
  • 22. Caching examples Compiler cache (APC or Zend) MySQL query cache (tune and use where possible) Cache generated pages or iframes (disk or memcache) Cache calculated data, datasets, page fragments (memcache) Cache static content (squid)
  • 23. 8. Federate Data federation is taking a single data set and spreading it across multiple database/application servers. Great technique for scaling data. Does not inherently promote data reliability. Reduces your ability to join within the data set. Increases overall internal connection establishment rate.
  • 24. 9. Replicate Replication is making synchronized copies of data available in more than one place. Useful scaling technique, very popular in ‘modern’ PHP architectures. Mostly usable for read-only data. High write rates can make it difficult to keep slaves in sync.
  • 25. Problems On the slave, you should see two threads running: an I/O thread, that reads data from the master, and an SQL thread, that updates the replicated tables. (You can see these with SHOW PROCESSLIST) Since updates on the master occur in *multiple* threads, and on the slave in a *single* thread, the updates on the slave take longer. Slaves have to use a single SQL thread to make sure queries are executed in the same order as on the master
  • 26. The more writes you do, the more likely the slaves are to get behind, and the further behind they will get. At a certain point the only solution is to stop the slave and re-image from the master. Or use a different solution: multi master, federation, split architectures between replication and federation, etc
  • 27. Other uses of replication Remember replication has other uses than scale out Failover Backups
  • 28. 10. Avoid Straining Hard-to-Scale Resources Some resources are inherently hard to scale ‘ Uncacheable’ data Data with a very high read+write rate Non-federatable data Data in a black-box Be aware of these limitations and be extra careful with these resources. Try and poke holes in the assumptions about why the data is hard to manage.
  • 29. 11. Compiler Cache PHP natively reparses a script and its includes whenever it executes it. This is wasteful and a huge overhead. A compiler cache sits inside the engine and caches the parsed optrees. The closest thing to ‘fast = true’ In PHP5 the real alternatives are APC and Zend Platform.
  • 30. 12. Xenodataphobia External data (RDBMS, App Server, 3 rd Party data feeds) are the number one cause of application bottlenecks. Minimize and optimize your queries. 3 rd Party data feeds/transfers are unmanageable. Do what you can to take them out of the critical path.
  • 31. Managing external data and services Cache it (beware of AUPs for APIs) Load it dynamically (iframes/XMLHttpRequest) Batch writes Ask how critical the data is to your app.
  • 32. Query tuning Query tuning is like PHP tuning: what you think is slow may not be slow. Benchmarking is the only way to truly test this. When tuning, change one thing at a time Your toolkit: EXPLAIN Slow Query Log mytop Innotop Query profilers
  • 33. Indexing problems Lack of appropriate indexing Create relevant indexes. Make sure your queries use them. (EXPLAIN is your friend here.) The order of multi-column indexes is important Remove unused indexes to speed writes
  • 34. Schema design (MySQL) Use the smallest data type possible Use fixed width rows where possible (prefer char over varchar: disk is cheap) Denormalize where necessary Take static data out of the database or use MEMORY tables Use the appropriate storage engine for each table
  • 35. Queries Minimizing the number of queries is always a good start. Web pages that need to make 70-80 queries to be rendered need a different strategy: Cache the output Cache part of the output Redesign your schema so you can reduce the number of queries Decide if you can live without some of these queries. Confirm that your queries are using the indexes you think that they are Avoid correlated subqueries where possible Stored procedures are notably faster
  • 36. 13. Be Lazy Deeply recursive code is expensive in PHP. Heavy manual looping usually indicates that you are doing something wrong. Learn PHP’s idioms for dealing with large data sets or parsing/packing data.
  • 37. 14. Don’t Outsmart Yourself Don’t try to work around perceived inefficiencies in PHP (at least not in userspace code!) Common bad examples here include: Writing parsers in PHP that could be done with a simple regex. Trying to circumvent connection management in networking/database libraries. Performing complex serializations that could be done with internal extensions. Calling out to external executables when a PHP extension can give you the same information. Reimplementing something that already exists in PHP
  • 38. 15. Caching Mentioned before, but deserves a second slide: caching is the most important tool in your tool box. For frequently accessed information, even a short cache lifespan can be productive. Watch your cache hit rates. A non-effective cache is worse than no cache.
  • 39. Thanks! There are longer versions of this talk at http://omniti.com/~george/talks/ There are good books on these topics as well: Advanced PHP Programming, G. Schlossnagle Building Scalable Web Sites, C. Henderson Scalable Internet Architectures, T. Schlossnagle Compulsory plug: OmniTI is hiring for a number of positions (PHP, Perl, C, UI design) http://omniti.com/careers