为什么我的服务器 mysql 显示占 CPU 很高,改成远程数据库后,远程数据库的服务器的 mysql 进程完全不占 CPU? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
doufenger
V2EX    Linux

为什么我服务器 mysql 显示占 CPU 很高,改成远程数据库后,远程数据库的服务器的 mysql 进程完全不占 CPU?

  •  
  •   doufenger 2018-06-25 20:16:25 +08:00 4218 次点击
    这是一个创建于 2665 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是一个很奇怪的问题。因为原来服务器经常高峰时期 502,然后看 top 是因为 mysql 占了很高的 CPU 资源,然后想着把数据库弄成远程的这样负载分离吧。

    现在数据库弄到远程了,高峰期原来的服务器还是很高,从 top 看现在变成是有很多 php-fpm 进程,其中一个 php-fpm 占 cpu 比较高了。

    奇怪的是远程数据库服务器,几乎一点负载都没有,这是什么情况?

    第 1 条附言    2018-06-28 10:02:13 +08:00
    感谢各位大大的指导,开启 opcache 后情况好很多了
    19 条回复    2018-06-27 12:58:03 +08:00
    Finest
        1
    Finest  
       2018-06-25 20:19:49 +08:00
    磁盘 IO 有检查过没
    doufenger
        2
    doufenger  
    OP
       2018-06-25 20:22:37 +08:00
    @hand515 磁盘 IO 能够检查什么?
    R18
        3
    R18  
       2018-06-25 20:27:37 +08:00 via Android
    切回本地看看到底是哪条 SQL 占用长?测测本地连接与远程连接处理速率
    Finest
        4
    Finest  
       2018-06-25 20:27:39 +08:00
    先试试 iostat 看 avg-cpu
    feverzsj
        5
    feverzsj  
       2018-06-25 20:30:08 +08:00
    看 I/O wait percentage
    likuku
        6
    likuku  
       2018-06-25 20:48:12 +08:00
    原先是 php-fpm 和 mysql 都在同一台机? mysql 新旧机软硬件配置一样?
    doufenger
        7
    doufenger  
    OP
       2018-06-25 20:49:14 +08:00
    @hand515
    似乎 IO 没问题,空闲率 58%

    avg-cpu: %user %nice %system %iowait %steal %idle
    35.89 0.00 5.81 0.00 0.00 58.30

    Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
    sda 48.94 1486.61 1291.70 441954642 384010770
    sdb 0.21 0.01 0.00 3112 0
    dm-0 177.47 1486.49 1290.39 441919154 383621376
    dm-1 0.18 0.10 1.31 28968 389336
    dm-2 0.00 0.00 0.00 760
    thread2
        8
    thread2  
       2018-06-25 20:53:21 +08:00 via Android
    innotop
    doufenger
        9
    doufenger  
    OP
       2018-06-25 21:57:28 +08:00
    @likuku 是的
    a7a2
        10
    a7a2  
       2018-06-25 22:52:47 +08:00
    开启 php status 监控 看看 php 被请求次数 看是否被攻击
    likuku
        11
    likuku  
       2018-06-25 22:53:35 +08:00   2
    php-fpm 和 mysql 混在一台... 繁忙时,两者都在抢同一块资源,那必然是不行,

    502 多,web 和 mysql 很可能那时都资源耗尽,既然已经分开了,新 mysql 这块,看来已经没啥问题,

    php-fpm 负载高?最好开下 php 的 slow log,之后分析下日志,看看是哪些 php 慢。

    再者,确认下你 php 足够新 (php7 or 更老)? php 的 opcache 加速有没有开?
    遇到过 php 太老,且没有开任何加速功能,让 php-fpm 处理请求很慢,
    被稍微密集访问时,php-fpm 就忙不过来,持续高 CPU 占用。

    根据 slow log 针对性重写优化比较慢的一些 php 程序,也是个好办法。
    doufenger
        12
    doufenger  
    OP
       2018-06-26 10:31:36 +08:00
    @likuku 安装 opcache 在最后一步出现这个情况了 求助大佬


    [root@localhost zendopcache-7.0.5]# make && make install
    /bin/sh /root/zendopcache-7.0.5/libtool --mode=compile cc -I. -I/root/zendopcache-7.0.5 -DPHP_ATOM_INC -I/root/zendopcache-7.0.5/include -I/root/zendopcache-7.0.5/main -I/root/zendopcache-7.0.5 -I/www/wdlinux/phps/56/include/php -I/www/wdlinux/phps/56/include/php/main -I/www/wdlinux/phps/56/include/php/TSRM -I/www/wdlinux/phps/56/include/php/Zend -I/www/wdlinux/phps/56/include/php/ext -I/www/wdlinux/phps/56/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/zendopcache-7.0.5/ZendAccelerator.c -o ZendAccelerator.lo
    cc -I. -I/root/zendopcache-7.0.5 -DPHP_ATOM_INC -I/root/zendopcache-7.0.5/include -I/root/zendopcache-7.0.5/main -I/root/zendopcache-7.0.5 -I/www/wdlinux/phps/56/include/php -I/www/wdlinux/phps/56/include/php/main -I/www/wdlinux/phps/56/include/php/TSRM -I/www/wdlinux/phps/56/include/php/Zend -I/www/wdlinux/phps/56/include/php/ext -I/www/wdlinux/php/56/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/zendopcache-7.0.5/ZendAccelerator.c -fPIC -DPIC -o .libs/ZendAccelerator.o
    /root/zendopcache-7.0.5/ZendAccelerator.c:39:35: error: TSRM/tsrm_virtual_cwd.h: No such file or directory
    /root/zendopcache-7.0.5/ZendAccelerator.c: In function ‘ accel_fast_zval_ptr_dtor ’:
    /root/zendopcache-7.0.5/ZendAccelerator.c:2176: error: ‘ IS_CONSTANT_ARRAY ’ undeclared (first use in this function)
    /root/zendopcache-7.0.5/ZendAccelerator.c:2176: error: (Each undeclared identifier is reported only once
    /root/zendopcache-7.0.5/ZendAccelerator.c:2176: error: for each function it appears in.)
    make: *** [ZendAccelerator.lo] Error 1
    doufenger
        13
    doufenger  
    OP
       2018-06-26 10:32:13 +08:00
    我的是 PHP 5.6 的
    doufenger
        14
    doufenger  
    OP
       2018-06-26 10:54:19 +08:00
    开了 Gzip On, Memcache On.
    24 核的 CPU 平时 200-300 在线的时候负载才 二十多, 晚上到 400 了就负载 200-250 多。。频繁 502
    likuku
        15
    likuku  
       2018-06-26 10:58:11 +08:00
    @doufenger php 5.6 已经内建了 opcache 只需要开启即可:

    使用 OpCache 提升 PHP 5.5+ 程序性能 | Laravel China 社区 - 高品质的 Laravel 开发者社区 : https://laravel-china.org/topics/301/using-opcache-to-enhance-the-performance-of-the-php-55-program

    [SOLVED] PHP 5.6 with opcache : https://www.linuxquestions.org/questions/linux-software-2/php-5-6-with-opcache-4175588254/

    不行的话,再查看 phpinfo() 确保 php 本身编译时已开启 --enable-opcache

    # 善用搜索引擎,我只分别用了 php opcache tsrm_virtual_cwd.h error 和 opcache php 5.6 就 google 出了足够的资料
    likuku
        16
    likuku  
       2018-06-26 11:09:32 +08:00
    差点忘记了,当前你的 php 5.6 没安装 /启用 任何加速器么? (eaccelerator, APC, opcache)
    doufenger
        17
    doufenger  
    OP
       2018-06-26 22:59:55 +08:00
    @likuku Memcache 算吗
    likuku
        18
    likuku  
       2018-06-27 10:06:04 +08:00
    @doufenger memcache 不算,它最多只能算优化加速 db 的。

    那么,看来,用于加速 php 本身的加速器你统统都没装!当下,那就 opcache 吧,必经已经被吸收进 php 本身了,
    兼容性,可靠性,和维护性都有保障了。这类东西都是拿内存换速度的,默认记得都是给它 16M 内存的,一般也够了。
    开启后运行几天先看看,若服务器资源充足,可以适当多给它点内存。

    很可能就是这个状况 “遇到过 php 太老,且没有开任何加速功能,让 php-fpm 处理请求很慢,
    被稍微密集访问时,php-fpm 就忙不过来,持续高 CPU 占用。”
    doufenger
        19
    doufenger  
    OP
       2018-06-27 12:58:03 +08:00
    @likuku 谢谢 已经开启了 今晚观察下高峰期如何
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     984 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 23:09 PVG 07:09 LAX 16:09 JFK 19:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86