linux – 如何确定导致我的服务器负载平均值跳至90的原因

linux – 如何确定导致我的服务器负载平均值跳至90的原因,第1张

概述好吧,我在这里完全失败了.我已经有这个Ubuntu服务器运行了大约三年了.在过去的几个月里,它开始表现得很奇怪而且只会变得更糟.这是一个非常繁忙的服务器,运行着大约15个网站和许多其他工具.典型的15分钟负载平均值是.3.然而,它大约每12小时左右飙升到90左右. 我确定这与mysql有关,服务器以某种方式被锁定,而apache只是等待开放的东西.事情变得疯狂时,这是一个顶级. Tasks: 14 好吧,我在这里完全失败了.我已经有这个ubuntu服务器运行了大约三年了.在过去的几个月里,它开始表现得很奇怪而且只会变得更糟.这是一个非常繁忙的服务器,运行着大约15个网站和许多其他工具.典型的15分钟负载平均值是.3.然而,它大约每12小时左右飙升到90左右.

我确定这与mysql有关,服务器以某种方式被锁定,而apache只是等待开放的东西.事情变得疯狂时,这是一个顶级.

Tasks: 143 total,20 running,123 sleePing,0 stopped,0 zombIEcpu(s): 34.3%us,62.9%sy,0.0%ni,0.0%ID,0.0%wa,0.2%hi,2.6%si,0.0%stMem:   2061444k total,911460k used,1149984k free,11156k buffersSwap:  1421712k total,0k used,1421712k free,126728k cached  PID USER      PR  NI  VIRT  RES  SHR S %cpu %MEM    TIME+  COMMAND 1080 MysqL     20   0  397m  59m 5892 S   18  3.0   0:37.37 MysqLd 1602 www-data  20   0  198m  26m 4948 R    7  1.3   0:08.17 apache2 1725 www-data  20   0  189m  24m  11m R    7  1.2   0:04.33 apache2 1719 www-data  20   0  189m  25m  12m R    7  1.2   0:03.88 apache2 1802 www-data  20   0  192m  20m 4808 S    7  1.0   0:03.15 apache2 1521 www-data  20   0  199m  28m 6912 R    6  1.4   0:10.15 apache2 1530 www-data  20   0  193m  22m 5104 S    5  1.1   0:06.53 apache2 1536 www-data  20   0  196m  25m 4936 R    5  1.2   0:07.93 apache2 1583 www-data  20   0  186m  21m  11m R    5  1.0   0:03.46 apache2 1722 www-data  20   0  193m  21m 4956 R    5  1.1   0:04.91 apache2 1906 www-data  20   0  182m  12m 6724 S    5  0.6   0:00.61 apache2 1439 root      20   0 92040 3672 2280 S    5  0.2   0:08.04 ezproxy 1539 www-data  20   0  194m  27m 9548 R    4  1.3   0:08.08 apache2 1716 www-data  20   0  187m  22m  11m R    4  1.1   0:03.36 apache2 1891 www-data  20   0  183m  18m  11m S    4  0.9   0:00.61 apache2 1498 www-data  20   0  194m  23m 6264 S    4  1.2   0:11.47 apache2 1517 www-data  20   0  193m  22m 5212 R    4  1.1   0:06.56 apache2 1523 www-data  20   0  190m  26m  12m S    3  1.3   0:07.61 apache2 1761 www-data  20   0  186m  20m  10m R    2  1.0   0:02.66 apache2 1779 www-data  20   0  184m  19m  10m R    2  0.9   0:02.69 apache2 1711 www-data  20   0  185m  20m  11m R    2  1.0   0:03.32 apache2 1728 www-data  20   0  182m  11m 5028 R    2  0.6   0:01.14 apache2 1819 www-data  20   0  181m 8120 3332 S    2  0.4   0:00.49 apache2 1886 www-data  20   0  182m  11m 6364 S    2  0.6   0:01.18 apache2 1899 www-data  20   0  184m  18m  10m S    2  0.9   0:01.38 apache2 1497 www-data  20   0  191m  27m  12m S    1  1.4   0:07.84 apache2 1766 www-data  20   0  181m  10m 5016 R    1  0.5   0:01.39 apache2 1871 www-data  20   0  184m  19m  11m R    1  1.0   0:00.98 apache2 1563 www-data  20   0  186m  23m  13m S    1  1.2   0:07.37 apache2 1865 www-data  20   0  184m  18m  10m S    1  0.9   0:01.56 apache2 1494 www-data  20   0  193m  25m 8352 S    1  1.3   0:12.07 apache2 1512 www-data  20   0  186m  23m  13m R    1  1.1   0:06.10 apache2 1526 www-data  20   0  186m  24m  13m R    1  1.2   0:06.30 apache2 1816 www-data  20   0  184m  18m  10m S    1  0.9   0:01.60 apache2 1516 www-data  20   0  184m  19m  11m S    1  1.0   0:04.12 apache2

现在,事情正在平静地进行,

Uptime: 241264  Threads: 1  Questions: 1870412  Slow querIEs: 1354  Opens: 13818  Flush tables: 1  Open tables: 256  QuerIEs per second avg: 7.752

这是我的所有数据库大小,以MB为单位

name1   14.78335094name2   11.08541870name3   31.01449203name4   6.24377346name5   0.36655807name6   10.95312500information_schema  0.00781250MysqL   0.60296535name7   2.19595051name8   1.82343006name9   20.51372623name0   59.42693043

我检查了慢查询日志,但是当锁定发生时,每个查询都被转储到慢查询日志中.当它碰巧运行proccessList时我没有进入服务器.除此之外我还能做些什么吗?

更新:以下是tuning-primer.sh脚本的输出:https://gist.github.com/913565

更新:这是一个令人生畏的IOStat:

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnsda               5.25         6.05       106.35    3090763   54314928

还有一个vmstat 3:https://gist.github.com/913565#file_vmstat%203

现在有更多的SAR! https://gist.github.com/913565#file_sar

谢谢您的帮助.

解决方法 尝试安装sar并在后台运行它.您可能有一个加载的磁盘负载.当事情出错时,sar会让你看到哪些资源负载最重.

高sys负载可能表示您发生了大量I / O.这可能是数据库自然增长的结果.您是否有适当的归档过程,以从数据库中删除旧数据?如果不是,您将达到表扫描所需的数据不再适合内存的程度.当这种情况发生时,性能会突然显着下降.慢查询日志可以包括一些可以通过添加索引来改进的查询.

如果你有另一个可以运行munin的系统,你可能想在服务器上安装munin-node.这将为您提供sar中可用的一些数据的图形输出.经常检查图表以查看是否有变化.

编辑:看起来你可能在apache下运行的某些代码中有内存泄漏.尝试将MaxRequestsPerChild设置为大约100并重新启动apache.如果这可以解决您的问题,请尝试找到您的内存泄漏.

总结

以上是内存溢出为你收集整理的linux – 如何确定导致我的服务器负载平均值跳至90的原因全部内容,希望文章能够帮你解决linux – 如何确定导致我的服务器负载平均值跳至90的原因所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1040821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存