什么是超高性能
- 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应用程序
同步阻塞模型
- 多开进程就能增加处理能力
- 增加进程会带来额外的进程切换开销
C++性能更好为什么不用C++
- 程序学习时间周期长+3年
- 开发调试软件时间x3倍
- QPS提升2倍
机器的时间可以用钱购买,但人的时间却无法使用金钱购买。
提升PHP程序性能
-
使用PHP7提升性能
程序员无需做任何事情,升级PHP7就立即提升1倍的性能。
-
使用Yaf/Phalcon提升性能
使用Swoole应用服务器
- 使用Swoole\Http\Server取代PHP-FPM将部分PHP对象常驻内存,减少传统LAMP架构中每次请求创建销毁对象的开销。
- Swoole\Http\Server使用纯C语言编写,网络通信引擎和协议解析性能非常强悍。
- Swoole最新版本可稳定的运行在PHP7环境
PHP7+Swoole压力测试
$ ab -c 100 -n 1000000 -k http://127.0.0.1:8080