TA的每日心情 | 奋斗 2021-4-20 05:43 |
|---|
签到天数: 300 天 [LV.8]合体
|
季侯 发表于 2023-5-24 15:50. j7 \; i9 r5 \1 k
从你的问题来看,你不是从事相关技术领域研发或者维护过大规模服务器集群的,所以就不说太多细节了。5 E2 N* l' I5 a' N8 r1 b8 K Q5 Z
v0 ~( H' t7 {! o% c
我 ... - x. B; _6 [7 l& t, p1 t2 e
是这篇文章说的道理吗?https://developer.aliyun.com/article/194733
' U( Y* e! R5 c; o' }, x: |$ N, J7 H0 M& G+ Z% v, U& e
服务器一般都会配置监控程序,当内存用量达到一个阈值的时候告警或者会自动重启异常的进程。但如果没有监控呢?当内存被用光的时候,分两种情况:
: p0 m, q' N4 Z* m3 L3 r: ^- i6 l6 d2 y
配置了swap:这时服务器还能提供服务,但性能会降低好几个档次,直到最终处于几乎死机状态,并且这一过程将持续很长一段时间,对服务器来说是个灾难;所以配置swap只能让服务再苟延残喘一会儿,然后就是长时间的服务中断(比如原来是每秒处理1000个请求的服务器,由于频繁使用swap,导致现在每秒只能处理50个请求,站在系统角度,进程还在运行,但是在业务角度服务已经几乎中断了)。3 p3 B& a; T: y, S1 _
没配置swap:这时内核的OOM killer被触发,在默认配置下,耗内存的进程会被优先kill掉,这种进程一般就是我们的业务进程,这时守护进程就会自动重启该业务进程(没有守护进程?开什么玩笑),这种情况只会造成服务中断一会会儿(取决于进程重启的时间),不会出现上面因配置了swap而导致性能很差且服务持续中断的情况。就算OOM killer没有kill掉预期的进程,我们通过测试也能发现,然后将OOM killer配置成重启系统,那也比配置了swap在那里苟延残喘的好。
6 b* Q6 P- m0 y从上面可以看出,对服务器来说,似乎不配置swap更好,可以让有问题的进程尽快重启,缩短业务受影响的时间。 |
|