Your SlideShare is downloading. ×
0
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
PHP Performance with APC + Memcached
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

PHP Performance with APC + Memcached

48,676

Published on

Published in: Technology
4 Comments
93 Likes
Statistics
Notes
No Downloads
Views
Total Views
48,676
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
777
Comments
4
Likes
93
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHP Performance w/APC + Memcached @FordAntiTrust thaicyberpoint.com thaithinkpad.com thaihi5.com
  • 2. Cache Theory ?
  • 3. Cache Theory ? Req 1 Check 2 Miss Compute Store 3 Cache 4 Hit Output Miss - [Store] - Hit
  • 4. Type ? Fast Slow http://ralphlosey.files.wordpress.com/2007/06/ram.jpg http://www.pctechguide.com/images/31HardDrive.jpg
  • 5. APC ? Alternative PHP Cache
  • 6. Opcode Cache and Variables Cache Automatic update w/code changes Code not changes request
  • 7. Free & Open Source
  • 8. Simply Installation
  • 9. PHP Flow Req • Scanning and Lexing (Plain Text to Tokens) • Parsing • Scanning • Lexing (Tokens to Expressions) • Parsing • Compilation • Compilation (Translated Expressions to Opcode) • Execution Execution (Opcode stacks are processed) Output
  • 10. Normal PHP vs APC
  • 11. Normal PHP vs APC Req • Scanning • Lexing • Parsing • Compilation Execution Output
  • 12. Normal PHP vs APC Req APC hook • Scanning • Lexing • Parsing Miss • Compilation APC hook Store Opcode cache Execution Hit Output
  • 13. Installation • Basic PECL (http://pecl.php.net) Conf – pecl install apc extension=apc.so apc.shm_segments=1 • Ubuntu apc.shm_size=256 – apt-get install php5-apc apc.optimization=0 apc.num_files_hint=2048 • Windows apc.ttl=3600 apc.user_ttl=3600 (http://pecl4win.php.net) apc.enable_cli=1 apc.max_file_size=1M – extension=php_apc.dll
  • 14. Benchmark PHP Native PHP w/APC Concurrency Level 10 Time taken for tests 60 seconds Complete requests 298 914 Total transferred 643,149 bytes 1,962,675 bytes HTML transferred 516,971 bytes 1,582,035 bytes Requests per second 4.91 [#/sec] (mean) 15.21 [#/sec] (mean) Time per request 2035.405 [ms] (mean) 657.623 [ms] (mean) Time per request 203.541 [ms] 65.762 [ms] (mean, across all concurrent requests) Transfer rate 10.35 [KB/s] received 31.88 [KB/s] received
  • 15. Memcached
  • 16. History “Developed by Danga Interactive for LiveJournal.com”
  • 17. Memcached ? • a distributed memory object caching system with hash table
  • 18. Memcached ? • a distributed memory object caching system with hash table
  • 19. Memcached ? • a distributed memory object caching system with hash table • a generic two stage hashing system (clients and servers). Clients are written for specific application languages. Server is written in C
  • 20. Memcached ? • a distributed memory object caching system with hash table • a generic two stage hashing system (clients and servers). Clients are written for specific application languages. Server is written in C
  • 21. Memcached ? • a distributed memory object caching system with hash table • a generic two stage hashing system (clients and servers). Clients are written for specific application languages. Server is written in C • 85% of top 20 sites use memcached; 50%+ of top 5k sites uses Memcached
  • 22. Memcached ? • a distributed memory object caching system with hash table • a generic two stage hashing system (clients and servers). Clients are written for specific application languages. Server is written in C • 85% of top 20 sites use memcached; 50%+ of top 5k sites uses Memcached
  • 23. Why Memcached ? • Scale-out – Machine – Process (Use different ports) • Memory faster than Disk • Allows for efficient use of your database • Can utilize existing network – Uses non-blocking network I/O (TCP/IP) • Very flexible • Client libraries in all major languages
  • 24. Limits (c/Hash Table) • Key : max 250 chars. • Values: max 1MB
  • 25. “We use more than 800 servers supplying over 28 terabytes of memory to our users.” “total throughput achieved is 300,000 UDP req/s” by Paul Saab Saturday, December 13, 2008 at 2:43am • 8-core machines • 20-30% CPU usage. • scale memcached to 8 threads on an 8-core system • moved to UDP for get operations to reduce network traffic http://www.facebook.com/note.php?note_id=39391378919
  • 26. Architecture practical ? http://barry.files.wordpress.com/2007/04/new-servers-back-04-2007.jpg
  • 27. Architecture practical ? “designing & implementing scalable applications with memcached and mysql” http://blog.thinkdiff.net/?p=419
  • 28. Architecture practical ? http://blog.thinkdiff.net/wp-content/uploads/2009/02/memcache_22-02-2009.png
  • 29. Coding ? (in PHP) /* OO API */ $memcacheObj = new Memcache; $memcacheObj->connect('memcache_host', 11211); /* set */ $memcacheObj->set('key', 'data', MEMCACHE_COMPRESSED, 50); / * get w/single key */ $var = $memcacheObj->get('key'); / * get w/multiple key */ $var = $memcacheObj->get(array('key1', 'key2')); $memcacheObj->close();
  • 30. CMS ? • Drupal has Memcache API and Integration http://drupal.org/project/memcache • Wordpress has object cache http://mohanjith.net/blog/2008/10/using-memcached-with- wordpress-object-cache.html
  • 31. code optimization is best
  • 32. Discussion Q&A
  • 33. Ref. • Improving PHP Application Performance with APC http://www.slideshare.net/vortexau/improving-php-application- performance-with-apc-presentation • PHP Accelerators : APC vs Zend vs XCache with Zend Framework http://blog.digitalstruct.com/2007/12/23/php-accelerators-apc-vs-zend-vs- xcache-with-zend-framework/ • Scaling with memcached http://www.slideshare.net/acme/scaling-with-memcached • Gear6 and Scaling Website Performance: Caching Session and Profile Data with Memcached http://www.slideshare.net/gear6memcached/gear6-and-scaling-website- performance-caching-session-and-profile-data-with-memcached
  • 34. Ref. (2) • PHP: Memcache - Manual http://th.php.net/manual/en/book.memcache.php • http://danga.com/memcached/ • http://pecl.php.net/package/memcache • http://www.socialtext.net/memcached/
  • 35. Thank you @FordAntiTrust http://www.slideshare.net/FordAntiTrust

×