linux缓存高怎么解决,linux – 在RAM中增加OS缓存,导致高系统CPU使用率

很长的问题,所以请和我一起出去:我遇到了一个我以前从未见过的服务器的奇怪问题.在具有~30G RAM的机器上,应用程序需要~10G(分布在数百个进程中).随着时间的推移,操作系统开始用缓存和缓冲区填充备用RAM(

Linux完全正常).我之前看到过这种情况没有任何问题,但是在这台机器上,因为空RAM的数量减少,它会使系统CPU疯狂(在8个CPU中100%,持续约3分钟),大约在256M标记处.我猜测操作系统正在使用所有的CPU来重新调整内存以获得一些可用空间.

根据我对Linux内存管理的理解,它应该在RAM中使用尽可能多的可用空间来进行操作系统级别缓存,然后在需要时将其交给需要它的任何应用程序,并根据过去的经验,这不是一个创伤性的经验对于CPU.它一直在发生.那么为什么它会有所不同呢?

我为相关指标附加了一小部分vmstat输出(每2秒捕获一次).当空闲内存达到~256M时,您可以看到系统CPU(第14列,右起第3列)开始变得繁忙,然后在30秒之后变得非常疯狂.

r b swpd free buff cache si so bi bo in cs us sy id wa

1 0 0 293876 5022848 18797528 0 0 206 1712 20924 12845 29 9 61 1

6 0 0 285324 5022848 18797656 0 0 0 0 18795 11382 23 9 68 0

2 0 0 292320 5022848 18797916 0 0 26 2022 19933 12068 27 10 62 1

3 0 0 264492 5022848 18798196 0 0 14 0 20705 15412 30 9 61 0

3 0 0 254880 5022848 18798804 0 0 190 532 16207 9723 31 8 60 0

17 0 0 255588 5021292 18783092 0 0 24 2 13521 7471 27 42 31 0

3 0 0 288396 5020536 18771496 0 0 0 2 14277 8458 24 29 47 0

4 0 0 299560 5020180 18761296 0 0 0 448 8778 5099 21 30 49 0

2 0 0 290908 5019376 18753656 0 0 0 2 9027 5115 27 19 54 0

7 0 0 306060 5018544 18746740 0 0 38 442 8398 5134 20 17 63 0

1 0 0 317140 5018244 18744252 0 0 46 0 9707 5822 22 17 61 0

4 0 0 282268 5017748 18741836 0 0 12 2 10203 6165 26 12 62 0

1 0 0 322548 5017500 18738024 0 0 2 444 10593 6277 23 16 61 0

4 0 0 314936 5017280 18734564 0 0 6 8 9473 5680 25 15 61 0

13 0 0 316976 5017044 18731128 0 0 0 622 12481 7353 33 17 49 0

5 0 0 324952 5016908 18728552 0 0 10 222 11071 6965 22 13 65 0

2 0 0 324692 5016908 18728344 0 0 0 526 10612 6602 24 10 66 0

3 0 0 312312 5017136 18727644 0 0 156 1050 12316 7472 26 10 63 1

2 1 0 323392 5017260 18726848 0 0 66 26 11643 7152 23 13 64 0

8 1 0 318956 5017124 18723772 0 0 20 518 17042 9543 31 22 46 1

1 0 0 317816 5017124 18725428 0 0 0 2854 11704 6951 21 9 67 3

18 0 0 325136 5014492 18707212 0 0 0 32 7619 3845 16 58 27 0

46 0 0 323508 5012980 18692036 0 0 0 562 3939 917 3 92 5 0

71 0 0 299164 5009680 18675476 0 0 0 6 4696 1304 8 90 1 0

75 0 0 205364 5007744 18657228 0 0 36 340 6699 2556 18 82 0 0

75 0 0 221660 5005956 18636480 0 0 68 0 3942 943 4 95 0 0

84 0 0 223788 5004624 18618380 0 0 0 0 2843 335 3 97 1 0

44 0 0 214956 5002464 18599872 0 0 0 0 4696 1301 5 92 3 0

37 0 0 223804 4999964 18577076 0 0 0 0 3281 521 1 98 0 0

82 0 0 266888 4995768 18557264 0 0 0 1760 4595 766 4 96 1 0

91 0 0 260148 4993964 18541192 0 0 0 0 3780 866 6 94 0 0

74 0 0 279796 4990464 18524980 0 0 0 4 4096 926 4 96 0 0

44 0 0 274796 4984268 18503492 0 0 0 0 6316 2142 3 95 3 0

48 0 0 295616 4981824 18482616 0 0 0 0 2561 227 1 99 1 0

我还包括来自监控工具的屏幕截图,以更直观地显示内存发生了什么.在此图中,底部(紫色)线是RAM中剩余的实际可用空间,每次达到256M时,都会导致CPU峰值.

顺便说一句,在这台机器上禁用交换(如果你无法从vmstats告诉).

更新

提出的更多信息:

> Linux是3.11.0,Ubuntu 13.10

>不是Java应用程序,它是PHP / Apache

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值