如何找出导致平均负载随机跳跃的原因?

我的 Debian GNU/Linux 专用机器上的平均负载有问题。 他们都(其中 2 个)运行 MySQL + 一个定制的游戏服务器软件应用程序 - 一个小型的“MMORPG”(一点也不大)。 CPU 使用率和内存使用率都还可以。 CPU 使用率通常 < 5%。 RAM 使用率确实增加到 80 - 90%,但始终有很多空闲、缓存或缓冲。 交换使用量为 0。

在使用 uptime、top 或任何显示它的各种其他命令监视负载时,它会任意提升到 4 甚至更多。 这显然是一个问题,尤其是考虑到两个盒子“只有”有 2 个核心。 在负载标准的神奇跳跃之后,它开始平稳下降,这表明它是一个真正的临时输入源使用。 CPU 使用率始终为 0 - 5%,最高为 10%,每当我处理以 1 次更新频率领先大约 15 分钟时。

我已经尝试了一些工具,如 htop、vmstat、dstat 等,但都没有结果。 这是任何有兴趣的人的日志:

http://www.k-zodron.com/log.txt

除了出现在第一行之外,CPU 使用率几乎没有增加,而负载跃升至天文值。 我对这些东西不是很专业,但是在磁盘上创建 4KB 似乎也不是 I/O 瓶颈。

我实际上也运行了 MySQL Tuning Primer Tool,它报告一切都很好。

任何想法如何追踪和解决问题? 谢谢!

编辑

http://www.k-zodron.com/munin/

穆宁统计,每5-10分钟升级一次。

3
2022-06-07 15:17:08
资源 分享
答案: 2

您需要更多指标。 我使用 ganglia 来收集不同的值,经典值:cpu、内存、网络、磁盘 i/o 等; 基于解决方案的指标:http 请求、mysql 问题以及迟缓问题等; 基于应用程序的指标,即有多少客户连接到游戏,或应用程序调用重要功能的次数。

评估该信息并与负载进行比较可以让您更好地了解系统中发生的情况。

0
2022-06-07 15:56:49
资源

难道是mysql正在使用短期表? 你能用 io stat 添加一些 munin 图形吗? 提供的日志中的 io 数字似乎非常低。

你的工作集是什么 - 信息是否容易融入记忆[似乎如此]? 你是否时不时地做大量的联系人 sql [从日志中出现 - 以任何方式都没有]?

意外地并发请求数量激增 [ sql 或您的个性化 Web 服务器 ] 是否可行? cat/proc/net/ip _ conntrack|wc - l 说明了什么? 它在负载峰值期间显示什么?

你能打开mysql 慢查询记录 - 例如> 1或2秒吗?

您的磁盘是直接连接到 Web 服务器还是可能是 iscsi / nfs? 你能检查磁盘的健康状况[明智]/突袭状况吗? 也许驱动器之间的不足或者,也许您可​​以运行简单的 io disk standard off - top 以确保您获得可观的读/写速度。

或者可能是 dmesg 中的一些可怕的程序?

修改:检查 netstat|wc - l 是否与负载相关

检查 ps axms|wc - l 是否与负载相关

检查 lsof|wc - l 是否与负载相关

[最好为那些将它们放在图形上的人破解小型 munin 插件]。

1
2022-06-07 15:45:35
资源