Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
付超群.高性能LAMP程序设计
Search
hjue
November 07, 2012
Programming
360
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
付超群.高性能LAMP程序设计
hjue
November 07, 2012
More Decks by hjue
See All by hjue
地推背后的逻辑
hjue
0
140
玩转企业自媒体
hjue
0
75
用户力
hjue
1
200
分布式爬虫
hjue
0
190
Linux LVS 负载均衡
hjue
3
210
技术趋势和如何面对技术
hjue
4
390
建一支强大的小团队(加长版)
hjue
1
870
iOS Game Development with Cocos2D
hjue
4
220
Codeigniter 介绍
hjue
1
190
Other Decks in Programming
See All in Programming
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
ActionController meets Protocol Buffers
sorah
0
560
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Railsバージョンを4倍にした話
optim
0
450
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
0
100
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
280
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Six Lessons from altMBA
skipperchong
29
4.5k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Optimising Largest Contentful Paint
csswizardry
37
4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Music & Morning Musume
bryan
48
7.4k
Designing Experiences People Love
moore
143
24k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Transcript
ŋĂLAMPìwĔĐ ğþ.com @fuchaoqun http://www.fuchaoqun.com
PHPñ
Performance… ! Čáarray_key_existsŒáisset¼6¬Ĺ"±SX©õ ! b·JĂŒĴástaticłÍ ! į%á__set, __getïŌºÍ ! áechoµprint() ! áincludeŏrequireµinclude_onceŏrequire_once ! @¤î±İä ! Č count/strlen/sizeof
§7 for Ýä»ėH ! ……
aŒ^ĒĪ…
Why? http://www.garfieldtech.com/blog/magic-benchmarks Ý200WÄ DàćFœ0. 31µs/ÈÄ __getœ1µs/ÈÄ DàĔüœ0.38µs/ÈÄ __setœ1.3µs/ÈÄ ęfXäŒcareĪ….
But… ! éÏãŒìw¶aČ·ĸĘŒU±notice ! t/äéŒŃČ& ! SQLėHȧXforÝĵńĉŒ¶aĂágroup by òĎ-ŒÿM v,& ! 2ĺʼn+profileäPHPé ! ĭĨauto loading
fÞ lazy loading ! çÉĦĩĉĮ{Œ´ŁČÎmemory limitŒk(±shell\ßă¹
ôPHPå¢ äôPHPéĩĉÆsRŔ #E© xī¡_Ğŏħâ×2ŏPK¸<=ŏM© }s…… Ď-:Íœ ĭĨset_error_handler¼ćôĩĉĸĘŒø¥ŀ¯ ŏď ĭĨregister_shutdown_function¼ćfatal errorsŏđĩĉ°Ļ
None
Profiling ! PHPp)œ XdebugŏxhprofŒÿ ! ªĂp) ab -n 100000 -c 200 -k
http://127.0.0.1/test.php
OpCode TryœAPCŏeAccelerator….
PHP Framework http://doophp.com/benchmark
PHP Tunning CaseœColaPHP http://www.ruilog.com/blog/view/b6f0e42cf705.html
PHP Tunning CaseœColaPHP http://www.ruilog.com/blog/view/b6f0e42cf705.html
None
PHP Tunning CaseœColaPHP ColaPHPddªäĜ{ŐFrontcontollerŏRouterŏDispactherŏControllerŏResponserőŒ ÒĀ 0.5ms ! áXdebugĢĤéĩĉ¨ÜŒáwebgrindoê ! ]IJ3äÒĀX«á(include/require)ŒĈÙáopcode;ĮŒ >0.3ms ! ]ķá__setŏ__getïŌºÍ¼fÞhĝäŁà
! ĭĨspl_autoload_registerfÞòälazy loadingŒ]]£ŋÀ¾Į{ ! “è”é ! À¾ÑìJľ°ċöÅŒIŁ á7äÛ A
Webserverñ
Apache VS Nginx http://blog.a2o.si/2009/06/24/apache-mod_php-compared-to-nginx-php-fpm/
Apache Tips ! http://httpd.apache.org/docs/2.4/misc/perf-tuning.html ! I;ĥá7äÃY ! mpmĬ(event/worker/prefork) ! AllowOverrides ! Google mod_pagespeed! ! EnableSendfile ! keepalive
Nginx Tips ! Epoll ! worker_processesœCPU©æ!©Œ=yáäĖ1!la ! ulimit -SHn 65535 ! CPUT worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000; ! worker_connections 65535; ! keepalive_timeout 60; ! sendfile on; ! tcp_nodelay on; ! tcp_nopush on;
Nginx 502 http://blog.s135.com/post/361/
Nginx 502 ! fast_cgiĔü fastcgi_connect_timeout 30; fastcgi_send_timeout 30; fastcgi_read_timeout 30; fastcgi_buffer_size
64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; ! Php-fpmĔü <value name="listen_address"> /dev/shm/php-fpm.sock </value> <value name="max_children">128</value> <value name="request_terminate_timeout">10s</value> <value name="request_slowlog_timeout">5s</value> <value name="slowlog">/path/to/slow.log</value> <value name="rlimit_files">65535</value>
© xñ
MySQL ! Linux server & MySQL server tunning ! èŏi ! =ł3ë ! 3x3Ċ
! ąaäó & Explain ! NÇŒĭĨx¼oě ! mķCacheŒ0jSQL¤ ! ķ¤ & ļ4 ! ēÉĂ´JŒÉbœleft joinijŏlikeá7óŏchareÉ varchara….
Cache ! Browser Cache Last modifyŏEtagŏExpires ! Page Cache SquidŏVarnishŏNginx proxy_cacheŏNginx fast_cgi_cache
! Data Cache MemcachedŏRedis http://tech.idv2.com/2008/08/17/memcached-pdf/
Nginx fast_cgi_cache fastcgi_temp_path /data/ngx_fcgi_tmp; fastcgi_cache_path /data/ngx_fcgi_cache levels=1:2 keys_zone=ngx_fcgi_cache:512m inactive=1d max_size=40g;
fastcgi_cache_valid 200 301 302 1d; fastcgi_cache_use_stale error timeout invalid_header http_500; fastcgi_cache_key $request_method ://$host$request_uri;
NoSQLœMongoDB
None
Redis ! ³ĂĬā http://finance.qq.com/data/#znxg,hyg http://smartstock.gtimg.cn/get.php?_func=filter&hs_hsl=0.05&hs_zf=0.03,0.05&hs_lb=1 ! 1300+ RPS ! MySQL© ?, RedisùcŐhÉMemcached
30%+£@ő ! >œgä© ÷½
sáõñ
Òļ4 ! á\œ }Ç\ß°¤ŒÉbEıŏEBï ! |ÖŇæœ memcacheqœ http://memcachedb.org/memcacheq/ beanstalkdœ http://kr.github.com/beanstalkd/ RabbitMQœhttp://www.rabbitmq.com/
3r~<\ßœGearman
'«Âó ! |ÖŇæ sphinxŏxapianŏlucence ! «3ĕœ scwsœ http://www.ftphp.com/scws/ ! ŀÁœ coreseekœ http://www.coreseek.com/
¾½ñ
1D5 ! ŒÙP+? ! ĨÔĔĐÉĔĐ´Ŏō ! ĠðAĠa ! bŃČŒČ& ! nÄÓ² ! Jľ°µ ! JÊuo ! ąaäå¢ňď
=yáĭá÷½
ĄĬā ! 2300w+Î*áŒ400wqLÐġá ! È^1.8Ä=ĚË ! 4IDCŒ20K9í¸<V(nginx+php-fpm) ! MySQL ?© ( ŒģIDCôNÇ) ! Memcachedùc ! ĭĨļ4NÇ©
¡GuK ! 9í¸<VNginx+PHP-FPM ! PHPÀ¾[ColaPHPe8 ¦ ! čĆ|EŒĮ|EŒĮIJý ! å¢T¯ ! ûØœĿëcXŊĽ
¡GuK
9íñ
PHP is rarely the bottleneck, 80-90% front-end. --Rasmus Lerdorf
®ī¡ ! Browser CacheŐExpireső ! CSS Sprite ! Lazy loading WÚŏ`$ï ! MvĚË ! į%ĶeQ
ÌÑķ ! JSŏCSSCú ! Gzip ! WÚCú ! Browser CacheŐLast modifyŏEtagő ! Lazy loading ! áajax0jÑķ
! <img src="" /> is evil
( ! CDN ! ł«á®cookieZO ! CSS§ņIJŒJS§zIJŐĭs.ő
p) ! Page Speed ! Yslow ! áJavascriptđŅńÕ¿°Ļ
Thanks & QA
关注我们:t.baidu-tech.com 资料下载和详细介绍:infoq.com/cn/zones/baidu-salon InfoQ 策划·组织·实施 关注我们:weibo.com/infoqchina “畅想•交流•争鸣•聚会”是百度技术沙龙的宗旨。 百度技术沙龙是由百度与InfoQ中文站定期组织的线下技术交流活动。目 的是让中高端技术人员有一个相对自由的思想交流和交友沟通的的平台。主要分讲师分享和OpenSpace两个关键环节,每期 只关注一个焦点话题。 讲师分享和现场Q&A让大家了解百度和其他知名网站技术支持的先进实践经验,OpenSpace环节是百度技术沙龙主题的升华
和展开,提供一个自由交流的平台。针对当期主题,参与者人人都可以发起话题,展开讨论。