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
130
玩转企业自媒体
hjue
0
71
用户力
hjue
1
180
分布式爬虫
hjue
0
180
Linux LVS 负载均衡
hjue
3
200
技术趋势和如何面对技术
hjue
4
380
建一支强大的小团队(加长版)
hjue
1
860
iOS Game Development with Cocos2D
hjue
4
220
Codeigniter 介绍
hjue
1
190
Other Decks in Programming
See All in Programming
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.8k
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.9k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
330
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
640
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
270
Heart of Swift Concurrency
koher
0
950
一人だけ、Kiroが静止する日
hideg
0
120
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
300
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
120
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
430
App Intentsのビルドプロセスを支える技術
kntkymt
0
410
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The browser strikes back
jonoalderson
0
1.7k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
Statistics for Hackers
jakevdp
799
230k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Building AI with AI
inesmontani
PRO
1
1.2k
Skip the Path - Find Your Career Trail
mkilby
1
240
Balancing Empowerment & Direction
lara
6
1.3k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Believing is Seeing
oripsolob
1
220
The Language of Interfaces
destraynor
162
27k
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环节是百度技术沙龙主题的升华
和展开,提供一个自由交流的平台。针对当期主题,参与者人人都可以发起话题,展开讨论。