跳到正文

阿里云主机的 nginx+php-fpm 环境如何优化高并发啊。。。

网友提供27 条回复

现在已经是 4 台 4 核 8G 内存主机架了负载均衡了,但是最近高峰访问的时候基本上四台机器 top 了下 CPU 资源完全耗尽,按日志换算了下,访问量其实也不算非常大。

php-fpm 试了下切换套接字模式和 TCP 模式,基本没差别

现在动态模式 进程数 200-500 ,全负荷时主机内存占用 50%左右,唯独 CPU 使用率居高不下。。。

求推荐优化意见和方案,谢谢各位了!

ps. 所有 package 都是阿里云的 centos 源上安装的

回复

doyel

@denghongcai 每秒也就千次不到。。。。

denghongcai

阿里云上,用 Laravel 这种慢框架, PHP7+RDS ,双核 4G 内存,非 IO 优化实例,单台机器大概 250QPS

denghongcai

你也不说下你并发的数量到底是多少

misty8873

兄弟,还是来我这用物理机吧。。。

odirus

@ug888168 +1 ,大部分情况下都能有非常明显的效果

doyel

@msg7086 pp-fpm 吃 CPU 厉害。。。所以我觉得是 FASTCGI 运行效率太低了。。。要么就是真的这破机器运算能力太差。。。

doyel

@oott123 已经是 RDS 了。。。

id4alex

nginx 并发上线卡一道吧,之前就是搜索引并发直接搞挂了,后来在 nginx 卡了每秒的并发基本解决 90%问题

oott123

有 MySQL 的话,改用阿里云自己的 RDS 试试看吧……

lbp0200

加服务器

millken

放弃 fpm,拥抱 swoole

ug888168

可以考虑一下用 opcache 缓存 php ,应该能降低 CPU 负荷

hellojinjie

cpu 利用率高,看是哪个空间的, sys 还是 user 的,要是 sys 的那没救了

shiny

高峰期看哪个进程占的 CPU , PHP 就先对 PHP profiling , MySQL 就查 SQL

gzelvis

阿里那是硬盘 io 太烂导致的 cpu up ,没救

ZE3kr

升级到 PHP7.0 ,数据库如果是 MySQL ,升级到 5.7 。然后在本地搞缓存,最好上 UPYUN 什么的吧,提高静态文件速度。

ZE3kr

PHP 跑的什么?网站吗?

msg7086

htop 先看看是谁吃了这么多 CPU 。
另外我不知道这货 CPU 到底什么水平,如果 CPU 太烂也可以考虑换机器。

yaodong

初期几个着手点:

- 先本地做分析 profiling ,工具是 xhprof 。找到 PHP 中的性能瓶颈,通过优化程序或者使用缓存的方式干掉它们。
- 然后看 SQL 慢查询,找到比较慢的 SQL 查询。通过优化查询方式和数据库索引等方式干掉它们。
- 升级到 PHP7 (如果你没有升级的话)。
- 如果有前端 AJAX 请求,尝试优化、合并、浏览器缓存这些请求。

yangqi

php-fpm 占用高的话应该考虑从 php 优化啊,多用缓存

↑