Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
LAMP Optimization
1. LAMP Optimization
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
2. 50 Slides!
(counting this one)
http://slideshare.net/csixty4
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
3. I’m not a sysadmin
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
4. 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
5. I
Like
Fast
Servers
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
6. LAMP
Linux
Apache
MySQL
PHP
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
7. 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
8. 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
9. “Free” drop +
High “Swap” =
Poor performance
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
10. RAM is cheap.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
12. “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
13. 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
14. Time is money.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
15. 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
16. 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
17. a2enmod cache mem_cache
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
18. Cache static
content in RAM
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
19. Cache static
content in RAM
It’s cheap.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
20. mod_evasive
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
21. Keep out vulnerability
scanners and attacks
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
22. More resources for
everyone else.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
23. MaxClients in your httpd.conf
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
24. Trial and error
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
25. Enough to handle
simultaneous connections.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
26. And RAM is still cheap.
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
27.
28. Optimizing MySQL
Key Buffer
Query Cache
InnoDB
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
29. Key Buffer in my.cnf
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
30. Caches table indexes
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
31. 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
32. Query Buffer in my.cnf
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
33. Caches parsed SELECTs
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
34. query_buffer_size=64M
Half of key_buffer_size
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
36. InnoDB database engine
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
37. Row vs. table locking
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
38. Faster UPDATE
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
39. Optimized for key access
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
40. Faster SELECT & UPDATE
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
41. 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
42. PHP 5.3 has mysqlnd
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
43. Native Driver
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
44. Up to 30% faster
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
45. 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
46. Output Buffering
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
47. Actually makes code
run slightly slower
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
48. Browser gets
whole page at once
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
49. It certainly feels faster
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009
50. Questions?
davidmichaelross.com
daveross.tel
LAMP Optimization :: Dave Ross :: Suburban Chicago PHP & Web Development Meetup :: SuburbanChicagoPHP.org :: October 1, 2009