什么是超高性能
- C10K菠剩、C100K忆矛、C1M
- 1W+QPS
C10K大量并發(fā)連接
- 基于Linux的
epoll
實(shí)現(xiàn)異步IO處理 - 選擇Nginx和Swoole
- 并發(fā)100W的TCP連接不是難題
1W+QPS
- 單臺(tái)服務(wù)器每日可處理超過10億次動(dòng)態(tài)請求
- 類似淘寶秒殺系統(tǒng)、微信搶紅包、刷朋友圈這樣的全民級應(yīng)用。如果PHP程序能夠達(dá)到1W+QPS踱阿,只用幾百臺(tái)機(jī)器就能支撐。
如何實(shí)現(xiàn)1W+QPS
- IO操作要足夠快或者使用異步钦铁,常見的IO操作包括Redis软舌、MySQL、CURL牛曹、磁盤讀寫佛点。
- CPU消耗足夠少:應(yīng)用服務(wù)器、PHP框架黎比、PHP應(yīng)用程序
同步阻塞模型
同步阻塞模型
- 多開進(jìn)程就能增加處理能力
- 增加進(jìn)程會(huì)帶來額外的進(jìn)程切換開銷
CPU消耗
C++性能更好為什么不用C++
- 程序?qū)W習(xí)時(shí)間周期長+3年
- 開發(fā)調(diào)試軟件時(shí)間x3倍
- QPS提升2倍
機(jī)器的時(shí)間可以用錢購買超营,但人的時(shí)間卻無法使用金錢購買。
提升PHP程序性能
-
使用PHP7提升性能
image.png
程序員無需做任何事情阅虫,升級PHP7就立即提升1倍的性能演闭。
-
使用Yaf/Phalcon提升性能
image.png
使用Swoole應(yīng)用服務(wù)器
- 使用Swoole\Http\Server取代PHP-FPM將部分PHP對象常駐內(nèi)存,減少傳統(tǒng)LAMP架構(gòu)中每次請求創(chuàng)建銷毀對象的開銷颓帝。
- Swoole\Http\Server使用純C語言編寫米碰,網(wǎng)絡(luò)通信引擎和協(xié)議解析性能非常強(qiáng)悍窝革。
- Swoole最新版本可穩(wěn)定的運(yùn)行在PHP7環(huán)境
PHP7+Swoole壓力測試
image.png
$ ab -c 100 -n 1000000 -k http://127.0.0.1:8080