Tom*_*Tom 8 performance nfs centos io bottleneck
我有一个 LAMP 集群,它通过 NFS 共享文件,当神秘的刷新进程开始出现时,其中一个偶尔会被攻击一段时间。
谁能帮我?解决这个问题的唯一方法是重新启动 - 杀死进程只会产生新的进程。
top - 19:43:43 up 104 days, 4:52, 1 user, load average: 27.15, 56.72, 33.31
Tasks: 301 total, 9 running, 292 sleeping, 0 stopped, 0 zombie
Cpu(s): 15.6%us, 77.0%sy, 0.0%ni, 4.2%id, 2.0%wa, 0.0%hi, 1.2%si, 0.0%st
Mem: 8049708k total, 7060492k used, 989216k free, 157156k buffers
Swap: 4194296k total, 483228k used, 3711068k free, 928768k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
840 root 20 0 0 0 0 R 98.0 0.0 6:45.83 flush-0:24
843 root 20 0 0 0 0 R 97.6 0.0 5:50.32 flush-0:25
835 root 20 0 0 0 0 R 96.0 0.0 6:42.44 flush-0:22
836 root 20 0 0 0 0 R 95.0 0.0 6:51.56 flush-0:27
833 root 20 0 0 0 0 R 94.3 0.0 6:27.21 flush-0:23
841 root 20 0 0 0 0 R 93.7 0.0 6:46.97 flush-0:26
2305 apache 20 0 772m 31m 25m S 23.6 0.4 0:07.60 httpd
2298 apache 20 0 772m 31m 25m S 13.6 0.4 0:08.98 httpd
26771 apache 20 0 775m 47m 41m S 10.3 0.6 4:07.97 httpd
2315 apache 20 0 770m 29m 25m S 9.0 0.4 0:07.44 httpd
24370 memcache 20 0 457m 123m 608 S 8.6 1.6 66:20.28 memcached
1191 apache 20 0 770m 30m 26m S 8.3 0.4 0:13.54 httpd
2253 apache 20 0 771m 32m 27m S 8.3 0.4 0:11.75 httpd
3476 varnish 20 0 52.9g 2.0g 20m S 8.0 25.6 0:15.30 varnishd
17234 apache 20 0 775m 50m 45m S 7.0 0.6 9:22.09 httpd
23161 apache 20 0 780m 54m 43m S 7.0 0.7 6:33.40 httpd
Run Code Online (Sandbox Code Playgroud)
谢谢
您的系统因磁盘写入请求而过载,并且您的配置“脏比率”不是您环境的最佳选择。
您可以为虚拟内存设置两个管理参数:
这些是dirty_background_ratio
和dirty_ratio
位于/proc/sys/vm/
这些参数代表内存的百分比。
如果您为dirty_ratio
您设置较低的值,您可以获得更多的磁盘负载,但会减少用于脏内存管理的 RAM 消耗。
的dirty_background_ratio
是百分比微小残留存储器,这引起在从系统中的磁盘写脏数据的停止。这意味着您必须在要写入的脏块维度(刷新过程)和系统将在写入过程中停止的最小内存之间找到最佳折衷方案。
良好表现的关系可能是:
dirty_ratio 90%
dirty_background_ratio 5%
Run Code Online (Sandbox Code Playgroud)
平均比率:
dirty_ratio 40~50%
dirty_background_ratio 10~20%
Run Code Online (Sandbox Code Playgroud)
系统中出现这种不平衡的原因可能有多种,其中最常见的原因是 RAM 量不足,无法在其他时间管理已安装的内存,这可能仅仅是由于服务器上安装的内存性能下降,其原因范围从差通风不正确的喂养。
尽管大多数问题都以软件错误的形式出现,但其中许多错误是由于与安装的服务相关的硬件配置不当造成的。特别是在租用机器的情况下。
为了帮助不太熟悉Linux机器的人,上面提到的参数可以这样替换:
永久模式:(
这两个命令只运行一次,否则用你喜欢的编辑器编辑这个文件)
# echo "vm.dirty_ratio = 40" >> /etc/sysctl.conf
# echo "vm.dirty_background_ratio = 10" >> /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)
临时模式:
# echo "40" > /proc/sys/vm/dirty_ratio
# echo "10" > /proc/sys/vm/dirty_background_ratio
Run Code Online (Sandbox Code Playgroud)
您可以在此链接中找到有关这些设置的更多信息
归档时间: |
|
查看次数: |
20800 次 |
最近记录: |