V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
doyel
V2EX  ›  云计算

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

  •  
  •   doyel · 2016-04-16 02:18:52 +08:00 · 10995 次点击
    这是一个创建于 3173 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    27 条回复    2016-07-06 19:14:42 +08:00
    yangqi
        1
    yangqi  
       2016-04-16 02:39:09 +08:00
    php-fpm 占用高的话应该考虑从 php 优化啊,多用缓存
    yaodong
        2
    yaodong  
       2016-04-16 06:26:34 +08:00
    初期几个着手点:

    - 先本地做分析 profiling ,工具是 xhprof 。找到 PHP 中的性能瓶颈,通过优化程序或者使用缓存的方式干掉它们。
    - 然后看 SQL 慢查询,找到比较慢的 SQL 查询。通过优化查询方式和数据库索引等方式干掉它们。
    - 升级到 PHP7 (如果你没有升级的话)。
    - 如果有前端 AJAX 请求,尝试优化、合并、浏览器缓存这些请求。
    msg7086
        3
    msg7086  
       2016-04-16 08:10:22 +08:00
    htop 先看看是谁吃了这么多 CPU 。
    另外我不知道这货 CPU 到底什么水平,如果 CPU 太烂也可以考虑换机器。
    ZE3kr
        4
    ZE3kr  
       2016-04-16 08:12:32 +08:00 via iPhone
    PHP 跑的什么?网站吗?
    ZE3kr
        5
    ZE3kr  
       2016-04-16 08:14:13 +08:00 via iPhone
    升级到 PHP7.0 ,数据库如果是 MySQL ,升级到 5.7 。然后在本地搞缓存,最好上 UPYUN 什么的吧,提高静态文件速度。
    gzelvis
        6
    gzelvis  
       2016-04-16 08:27:01 +08:00 via iPhone
    阿里那是硬盘 io 太烂导致的 cpu up ,没救
    shiny
        7
    shiny  
       2016-04-16 08:28:18 +08:00
    高峰期看哪个进程占的 CPU , PHP 就先对 PHP profiling , MySQL 就查 SQL
    hellojinjie
        8
    hellojinjie  
       2016-04-16 08:58:25 +08:00 via Android
    cpu 利用率高,看是哪个空间的, sys 还是 user 的,要是 sys 的那没救了
    ug888168
        9
    ug888168  
       2016-04-16 09:19:02 +08:00 via Android
    可以考虑一下用 opcache 缓存 php ,应该能降低 CPU 负荷
    millken
        10
    millken  
       2016-04-16 09:39:56 +08:00 via Android
    放弃 fpm,拥抱 swoole
    lbp0200
        11
    lbp0200  
       2016-04-16 09:40:58 +08:00 via Android
    加服务器
    oott123
        12
    oott123  
       2016-04-16 09:41:37 +08:00
    有 MySQL 的话,改用阿里云自己的 RDS 试试看吧……
    id4alex
        13
    id4alex  
       2016-04-16 10:19:37 +08:00
    nginx 并发上线卡一道吧,之前就是搜索引并发直接搞挂了,后来在 nginx 卡了每秒的并发基本解决 90%问题
    doyel
        14
    doyel  
    OP
       2016-04-16 21:35:36 +08:00
    @oott123 已经是 RDS 了。。。
    doyel
        15
    doyel  
    OP
       2016-04-16 21:36:25 +08:00
    @msg7086 pp-fpm 吃 CPU 厉害。。。所以我觉得是 FASTCGI 运行效率太低了。。。要么就是真的这破机器运算能力太差。。。
    odirus
        16
    odirus  
       2016-04-17 08:35:28 +08:00
    @ug888168 +1 ,大部分情况下都能有非常明显的效果
    misty8873
        17
    misty8873  
       2016-04-17 10:46:13 +08:00 via iPhone
    兄弟,还是来我这用物理机吧。。。
    denghongcai
        18
    denghongcai  
       2016-04-17 12:38:13 +08:00
    你也不说下你并发的数量到底是多少
    denghongcai
        19
    denghongcai  
       2016-04-17 12:40:14 +08:00
    阿里云上,用 Laravel 这种慢框架, PHP7+RDS ,双核 4G 内存,非 IO 优化实例,单台机器大概 250QPS
    doyel
        20
    doyel  
    OP
       2016-04-17 15:34:00 +08:00
    @denghongcai 每秒也就千次不到。。。。
    denghongcai
        21
    denghongcai  
       2016-04-17 15:42:28 +08:00
    @doyel 单台千次?那其实还挺正常的,看看 RDS 的日志 QPS 到了多少?看看 CPU 的负载是耗在 sys 还是 usr 上
    doyel
        22
    doyel  
    OP
       2016-04-17 19:50:50 +08:00
    @denghongcai 总共。。。
    doyel
        23
    doyel  
    OP
       2016-04-17 19:53:06 +08:00
    @denghongcai 峰值 QPS 5000
    aliyunservice
        24
    aliyunservice  
       2016-04-18 11:49:40 +08:00
    @yaodong 建议不错,建议楼主可以先针对这几点分析优化下哦。
    xiaooloong
        25
    xiaooloong  
       2016-04-20 16:53:32 +08:00
    虚拟机的单核心性能确实没有有物理机的好
    njwangchuan
        26
    njwangchuan  
       2016-07-06 13:29:48 +08:00
    4 台 4 核 8G 内存主机,换成 8-12 台 2 核 4GB 试试。话说不能自动扩展的云计算服务器都是耍流氓。
    doyel
        27
    doyel  
    OP
       2016-07-06 19:14:42 +08:00 via iPhone
    @njwangchuan 太同意这句话了……不能按 lb 负载情况自动扩张的根本意义不大
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2312 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:06 · PVG 00:06 · LAX 08:06 · JFK 11:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.