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