LAMP Optimization
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
50 Slides!
(counting this one)
http://slideshare.net/csixty4
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
I’m not a sysadmin
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
I’m not a sysadmin
but I know what I like.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
I
Like
Fast
Servers
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
LAMP
Linux
Apache
MySQL
PHP
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Optimizing Linux
Prevent swapping
Disable atime updates
Buy another machine
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
vmstat -S M
Virtual memory statistics in
Megabytes (or Kilobytes)
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
“Free” drop +
High “Swap” =
Poor performance
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
RAM is cheap.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
“Access Timestamp”
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
“I agree, we really should do
something about atime.”
- Linus Torvalds, 2007
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Edit /etc/fstab
In the fourth column,
add noatime,nodiratime
Save. Reboot.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Time is money.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Add another server
Move database to its own server
Load balance
Cluster
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Optimizing Apache
mod_cache
Keep the riff-raff out
Increase MaxClients
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
a2enmod cache mem_cache
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Cache static
content in RAM
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Cache static
content in RAM
It’s cheap.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
mod_evasive
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Keep out vulnerability
scanners and attacks
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
More resources for
everyone else.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
MaxClients in your httpd.conf
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Trial and error
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Enough to handle
simultaneous connections.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
And RAM is still cheap.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Optimizing MySQL
Key Buffer
Query Cache
InnoDB
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Key Buffer in my.cnf
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Caches table indexes
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
key_buffer_size=128M
20-25% (or so) of available RAM
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Query Buffer in my.cnf
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Caches parsed SELECTs
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
query_buffer_size=64M
Half of key_buffer_size
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
You get the idea.
InnoDB database engine
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Row vs. table locking
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Faster UPDATE
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Optimized for key access
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Faster SELECT & UPDATE
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Optimizing PHP
Upgrade to PHP 5.3
Install an accelerator
Enable output buffering
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
PHP 5.3 has mysqlnd
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Native Driver
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Up to 30% faster
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
PHP Accelerators
Alternative PHP Cache (APC) : 3x-5x faster
eAccelerator
XCache
Zend Optimizer+
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Output Buffering
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Actually makes code
run slightly slower
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Browser gets
whole page at once
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
It certainly feels faster
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
Questions?
davidmichaelross.com
daveross.tel
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
0 comments
Post a comment