我们如何找出在我们的服务器上导致高速caching使用率的原因?

每个星期五从22:00开始,我们的服务器开始使用大量caching,然后在大约两个小时后死亡。 请看下面的仙人掌图。

内存使用情况

我们尝试使用https://raw.githubusercontent.com/pixelb/ps_mem/master/ps_mem.py使用大量内存的狩猎过程,但是它显示的内容如下所示。

... 438.0 MiB + 1.1 MiB = 439.1 MiB XXXEngine XXX 961f4dbc-3b01-0000-0080-ff115176831d xxx 520.2 MiB + 1.7 MiB = 521.9 MiB XXXEngine XXX f2ac330c-3a01-0000-0080-a2adb5561889 xxx 10.4 GiB + 829.0 KiB = 10.4 GiB java -server -Xms1G -Xmx5G -Djava.net.preferIPv4Stack=true -cp ../lib/hazelcast-3.2.2.jar:../lib/xxx.cache.jar com.hazelcast.examples.StartServer (2) --------------------------------- 28.1 GiB ================================= 

这与caching100G无关,我们认为Linux可能会使用那么多的内存来caching磁盘I / O,所以我们使用atop来衡量它。 这是我们atop -r atop-20140919-230002-062979000.bin -d -D (-c)运行时得到的结果。

  PID TID RDDSK WRDSK WCANCL DSK CMD 1/405 1 - 907.9G 17.0T 2.8T 97% init 6513 - 175.1G 46.1G 5.9G 1% crond 8842 - 8K 110.3G 128K 1% xxxzmuc0 6296 - 6.5G 25.1G 15.9G 0% sshd 4463 - 4668K 23.2G 0K 0% kjournald 19681 - 1835K 22.5G 22.4G 0% xxxtroker 4469 - 4728K 15.2G 0K 0% kjournald 4475 - 4716K 14.9G 0K 0% kjournald 2401 - 588K 11.4G 0K 0% kjournald 8652 - 7.0G 2.6G 1.3G 0% k6gagent 26093 - 9.5G 0K 0K 0% bpbkar ... 

并select-c

  PID TID S DSK COMMAND-LINE (horizontal scroll with <- and -> keys) 1/405 1 - S 97% init [3] 6513 - S 1% crond 8842 - S 1% xxzmuc0 -m XXX 6296 - S 0% /usr/sbin/sshd 4463 - S 0% kjournald 19681 - S 0% xxxtroker XXX 4469 - S 0% kjournald 4475 - S 0% kjournald 2401 - S 0% kjournald 8652 - S 0% /opt/IBM/ITM/lx8266/6g/bin/k6gagent 26093 - S 0% bpbkar -r 2678400 -ru root -dt 0 -to 0 -clnt ... ... 

所以我能看到的是, init已经将17 TB的数据写入了磁盘,这看起来很多。 不过,我不知道如何找出是什么原因造成的。 我认为,Linux正在使用caching来加速磁盘操作,但在进程需要它时将其还原,并且无法使用caching来closures服务器。

我们在“红帽企业Linux服务器版本5.5(Tikanga)”Linux deli妄2.6.18-194.26.1.el5#1 SMP Fri Oct 29 14:21:16 EDT 2010 x86_64 x86_64 x86_64 GNU / Linux。

我们应该做什么(下一步)来找出什么是错的?

我看到bpbkar也是活跃的,我会看看这个过程。 它是Symantec NetBackup的一部分,请检查是否有在出现问题时运行的备份。 禁用它并查看是否在未安排备份时再次出现问题。

如果bpbkar是有罪的进程,你应该启用完整的日志logging来找出它导致这个问题的地方。 一定要为它安装最新的更新,因为它们总是解决一大堆问题。

检查slabtop实用程序。 也有你确定,他们不是一个I / O密集型的计划在你的系统周围的计划(即mlocate / updatedb ..)?

 slabtop --sort=c