首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS EC2 Amazon正在使用交换,即使它不应该使用

问AWS EC2 Amazon正在使用交换,即使它不应该使用
EN

Server Fault用户
提问于 2019-04-05 14:38:57
回答 1查看 1.3K关注 0票数 2

我有几个ECS服务器运行各种应用程序。在几次神秘的中断之后,我注意到实例很难交换,它消耗了它的IO突发平衡,使实例变得无用。

事实:

:

  • 这些机器是具有2GB或4GB内存的t2和t3实例。
  • 在实例中有足够的实际RAM来运行应用程序。
  • vm.swappiness设置为1或5
  • 根据我的监视,实例上的内存使用率一直在60%到68%之间(这是没有缓冲区/缓存的使用,剩余的“空闲”内存总是由缓冲区/缓存使用)
  • 交换的使用率总是在30-40%(配置了1-1,5GB交换空间);vmstat报告了一些si和so,如
代码语言:javascript
复制
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  0
  • 磁盘是与swapfile共享的20 of EBS gp2卷,因此总的IO容量是有限的。
  • vm.overcommit_memory是0

cat /proc/meminfo在两个相同的(一个是有,另一个没有交换)上的输出是

禁用交换的

:

代码语言:javascript
复制
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

在启用交换时:

代码语言:javascript
复制
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 kB

我尝试了什么:

  • 我试验了各种vm.swappiness值,但它们似乎什么都不做。
  • 我甚至尝试在swapoff -a && swapon -a更改后重新启动并执行vm.swappiness。

我期待发生的事情:

  • 在我的想象中,在我的设置中,交换应该始终保持空闲状态,除非发生一些不幸的事件,因为总内存使用量将超过可用内存。

为什么会发生这种情况?我遗漏了什么?我该怎么做才好呢?不幸的是,AFAIK无法在t2/t3 ATM中使用实例存储(并在该卷上放置交换)。

目前,我的机器正在运行,交换关机,他们对此很满意,只是我有点担心。(编辑:)我的主要目标是说服系统只接触交换作为最后手段。

我的另一个简单的EC2 Ubuntu机器的行为是他们应该做的。

EN

回答 1

Server Fault用户

回答已采纳

发布于 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。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/961711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档