我有一个 8GB RAM 的系统并在其上运行 mysql,top 命令显示
内存:总计 8124416k,已使用 8110004k,可用 14412k,缓冲区 21292k 交换:总计 8388600k,已使用 1712132k,可用 6676468k,缓存 2058600k
vmstat 1 给出此输出
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 1712132 38596 21628 2033920 0 0 451 77 0 1 14 1 81 5 0
1 0 1712132 38412 21628 2033928 0 0 32 0 695 534 9 1 90 1 0
0 0 1712132 37992 21656 2034412 0 0 476 136 630 474 8 0 84 8 0
0 0 1712132 37992 21656 2034424 0 0 0 0 232 138 4 0 96 0 0
2 0 1712132 37540 21656 2034424 0 0 0 0 463 228 41 1 58 0 0
1 0 1712132 37480 21656 2034440 0 0 16 0 393 208 26 0 74 0 0
2 0 1712132 37932 21664 2034432 0 0 0 244 655 454 38 1 59 2 0
1 0 1712132 38056 21664 2034440 0 0 0 0 403 193 36 0 63 0 0
0 0 1712132 38056 21664 2034440 0 0 16 16 498 362 13 0 87 0 0
3 0 1712132 37872 21664 2034488 0 0 48 0 463 350 9 1 89 1 0
1 0 1712132 37996 21664 2034488 0 0 16 0 765 536 29 0 70 0 0
3 0 1712132 37996 21672 2034512 0 0 16 92 855 539 46 1 53 0 0
2 0 1712132 38432 21676 2034508 0 0 20 0 1015 545 63 1 36 0 0
0 0 1712132 38680 21684 2034544 0 0 0 72 540 307 34 0 66 0 0
6 0 1712132 38556 21684 2034544 0 0 0 0 926 518 80 1 20 0
0
免费-m 提供
total used free shared buffers cached
Mem: 7934 7910 23 0 21 1999
-/+ buffers/cache: 5889 2044
Swap: 8191 1672 6519
交换空间的使用是否令人担忧,或者是否正常。
提前感谢 Pankaj
答案1
您的案例中重要的列不是swpd
但si
和so
。Linux 交换未使用的内容是正常且健康的。但是,如果si
和so
显示持续活动,则意味着您没有足够的资源来满足您的使用模式。正如其他人指出的那样,这意味着您的应用程序存在漏洞或 RAM 不足。
坦率地说,我并不认为vmstat
您发布的信息有什么令人不安的。
答案2
如果我读的数字没有问题(格式不正确的话,读起来会很困难),我会说您的系统运行得不够好。可能是应用程序内存泄漏,或者应用程序要求超出了系统硬件的承受范围。
运行 top 并按内存使用情况排序,查看哪些程序占用了这么多内存。如果可能的话,我会重启占用所有内存的服务,并密切关注它一段时间,看看它恢复到占用这么多内存的速度有多快。
使用大量交换空间并不总是问题,只要它不会破坏磁盘。使用交换空间可能是对资源的有益利用,也可能是有害的,这取决于机器的运行情况。
机器的负载是多少?
答案3
系统在正常状态下的运行方式是这样的吗?我认为这不是一个大问题,但看起来这个系统会从增加 RAM 中受益。负载在哪里?
答案4
Linux 系统倾向于交换未使用的数据,但我不确定为什么 RAM 中有 1GB 几乎未使用的信息。如果您的 si/so 值非零,我会更加担心。
我假设您使用 InnoDB 存储所有表?您是否对性能进行了任何自定义调整?您真的看到了问题,还是只是担心数字?