我有几个ECS服务器运行各种应用程序。在几次神秘的中断之后,我注意到实例很难交换,它消耗了它的IO突发平衡,使实例变得无用。
事实:
t2和t3实例。vm.swappiness设置为1或5vmstat报告了一些si和so,如procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 434948 83616 73468 818316 580 0 580 0 883 1453 5 1 93 1 0
2 0 429060 65308 73468 818320 17760 0 17760 76 5927 6318 15 21 52 12 1
0 3 440660 81180 73464 817208 4352 12880 4352 12880 5791 2672 8 39 0 52 0
1 1 443164 78080 73452 816304 10104 3272 10104 3272 3850 3807 7 34 0 58 1
1 1 438456 63944 73460 816356 13168 156 13216 212 3673 3686 12 34 21 32 0
1 1 449472 72748 73460 815872 1600 11016 1600 11016 3815 1445 1 23 0 74 1
0 4 453592 59728 73460 815964 3324 8748 4080 8752 4891 2881 10 34 1 54 0
1 2 462724 68380 73456 815152 1704 10412 1704 10412 5381 2195 7 35 1 55 0
0 2 473444 81148 73456 815108 1024 10976 1024 10976 4637 1608 2 34 2 63 1
0 1 483124 87432 73444 818604 2352 9684 6136 9684 4526 1800 8 28 8 54 1
0 1 480308 66860 73452 824476 13656 0 19536 36 3982 4103 11 27 39 22 0
0 3 483744 75016 73448 825132 5016 7532 5860 7532 5645 4748 14 33 6 47 0
2 2 493140 80348 73448 825068 1888 10164 1888 10164 4128 1993 2 34 0 62 0
1 0 497544 78488 73440 824976 6248 6452 6364 6452 4192 2916 3 39 16 41 1
0 1 494216 65096 73440 825068 12488 0 12616 0 4070 4620 7 26 42 24 1
0 2 503856 69436 73452 824760 1968 10152 1968 10192 4885 1821 4 28 2 65 0
1 0 514264 88532 73440 824188 1332 10668 1332 10672 4749 1622 2 25 1 71 0
0 1 512984 76628 73440 824120 12844 0 12844 0 3653 3517 6 26 48 20 0
1 3 479192 65220 73440 824556 12484 0 12832 0 3729 4821 6 29 34 31 0
0 5 462680 78612 73440 824824 6120 6784 6532 6784 4111 3582 5 45 0 49 1
0 2 433376 99148 73448 824992 5884 7560 6024 7596 3954 3407 3 33 1 62 0vm.overcommit_memory是0cat /proc/meminfo在两个相同的(一个是有,另一个没有交换)上的输出是
禁用交换的
MemTotal: 2004488 kB
MemFree: 178976 kB
MemAvailable: 489360 kB
Buffers: 136892 kB
Cached: 290396 kB
SwapCached: 0 kB
Active: 1063520 kB
Inactive: 612900 kB
Active(anon): 817380 kB
Inactive(anon): 436892 kB
Active(file): 246140 kB
Inactive(file): 176008 kB
Unevictable: 17620 kB
Mlocked: 17620 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 20 kB
Writeback: 0 kB
AnonPages: 1262220 kB
Mapped: 140336 kB
Shmem: 252 kB
Slab: 73448 kB
SReclaimable: 39612 kB
SUnreclaim: 33836 kB
KernelStack: 6944 kB
PageTables: 15300 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1002244 kB
Committed_AS: 3076324 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 182248 kB
DirectMap2M: 1875968 kB
DirectMap1G: 0 kB在启用交换时:
MemTotal: 2004488 kB
MemFree: 116220 kB
MemAvailable: 925764 kB
Buffers: 73472 kB
Cached: 827312 kB
SwapCached: 136268 kB
Active: 653736 kB
Inactive: 1041616 kB
Active(anon): 375736 kB
Inactive(anon): 424652 kB
Active(file): 278000 kB
Inactive(file): 616964 kB
Unevictable: 17620 kB
Mlocked: 17620 kB
SwapTotal: 1499132 kB
SwapFree: 1061032 kB
Dirty: 4 kB
Writeback: 0 kB
AnonPages: 749004 kB
Mapped: 180880 kB
Shmem: 252 kB
Slab: 118940 kB
SReclaimable: 92304 kB
SUnreclaim: 26636 kB
KernelStack: 6784 kB
PageTables: 14212 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2501376 kB
Committed_AS: 2881136 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 110568 kB
DirectMap2M: 1947648 kB
DirectMap1G: 0 kBvm.swappiness值,但它们似乎什么都不做。swapoff -a && swapon -a更改后重新启动并执行vm.swappiness。为什么会发生这种情况?我遗漏了什么?我该怎么做才好呢?不幸的是,AFAIK无法在t2/t3 ATM中使用实例存储(并在该卷上放置交换)。
目前,我的机器正在运行,交换关机,他们对此很满意,只是我有点担心。(编辑:)我的主要目标是说服系统只接触交换作为最后手段。
我的另一个简单的EC2 Ubuntu机器的行为是他们应该做的。
发布于 2019-04-08 15:53:52
在我的想象中,在我的设置中,交换应该始终保持空闲状态,除非发生一些不幸的事件,因为总内存使用量将超过可用内存。
内存不足已经太迟了。通过分页回收是非常缓慢的,Linux试图远离OOM。
相反,缓慢的缓慢的不活动页面出来交换空间,利用空间和I/O可用。如果不使用分页空间,为什么要有分页空间?更高的可调性将更快地到达相同的分页空间。
要了解有关算法的文档,请参阅UNIX:Linux内核中用于操作系统文件缓存的页面替换算法是什么?上的MM wiki、LWN文章和一些参考资料。
在您的主机上,总分配(Committed_AS)约为3GB,而MemTotal为2GB。150%不一定是坏的,其中有些是不活动的或未使用的。但是Linux会在可能的情况下退出,因为在保守的最坏情况下,所有的东西都不适合RAM。安全内存大小将比Committed_AS小,但要量化有多难。
在您的环境中,IOPS非常昂贵,因为它们与永久存储配额相比较。禁用分页空间并监视OOM。
https://serverfault.com/questions/961711
复制相似问题