Swoole 高性能后台程序
2019-06-06  本文已影响0人 
JunChow520
什么是超高性能
- C10K、C100K、C1M
 - 1W+QPS
 
C10K大量并发连接
- 基于Linux的
epoll实现异步IO处理 - 选择Nginx和Swoole
 - 并发100W的TCP连接不是难题
 
1W+QPS
- 单台服务器每日可处理超过10亿次动态请求
 - 类似淘宝秒杀系统、微信抢红包、刷朋友圈这样的全民级应用。如果PHP程序能够达到1W+QPS,只用几百台机器就能支撑。
 
如何实现1W+QPS
- IO操作要足够快或者使用异步,常见的IO操作包括Redis、MySQL、CURL、磁盘读写。
 - CPU消耗足够少:应用服务器、PHP框架、PHP应用程序
 
同步阻塞模型
同步阻塞模型
- 多开进程就能增加处理能力
 - 增加进程会带来额外的进程切换开销
 
CPU消耗
C++性能更好为什么不用C++
- 程序学习时间周期长+3年
 - 开发调试软件时间x3倍
 - QPS提升2倍
机器的时间可以用钱购买,但人的时间却无法使用金钱购买。 
提升PHP程序性能
- 
使用PHP7提升性能
image.png
程序员无需做任何事情,升级PHP7就立即提升1倍的性能。
 - 
使用Yaf/Phalcon提升性能
image.png
 
使用Swoole应用服务器
- 使用Swoole\Http\Server取代PHP-FPM将部分PHP对象常驻内存,减少传统LAMP架构中每次请求创建销毁对象的开销。
 - Swoole\Http\Server使用纯C语言编写,网络通信引擎和协议解析性能非常强悍。
 - Swoole最新版本可稳定的运行在PHP7环境
 
PHP7+Swoole压力测试
image.png
$ ab -c 100 -n 1000000 -k http://127.0.0.1:8080