1.报警图片服务器负载高,静态图片全部缓存,压缩程序也停止了,为什么会负载高呢,刚开始以为是图片集中回源,看日志量并没有显著增长,用top查看cpu占用率,java进程占用很高,这个是在跑的logstash日志收集系统,关闭logstash负载马上开始下降,恢复到正常水平,怀疑logstash有bug,或者内存泄漏。
2.重启logstash,马上负载又开始增加,瞬间飙高到30多。free -m 查看内存
$ free -h total used free shared buff/cache available Mem: 15G 14G 474M 18M 476M 575M Swap: 0B 0B 0B
内存使用率居然这么高,明显不正常,logstash已经关闭了,看来是内存过少导致起logstash后内存不足,发生雪崩,负载瞬间飙高
到底什么占用了内存呢?
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'
看到
19460 php-fpm php-fpm: pool www 0.0 149360 1011768 Jan16 www 1000 19461 php-fpm php-fpm: pool www 0.0 151312 1090228 Jan16 www 1000 19466 php-fpm php-fpm: pool www 0.0 182440 1039204 Jan16 www 1000 19467 php-fpm php-fpm: pool www 0.0 171056 1086568 Jan16 www 1000 19470 php-fpm php-fpm: pool www 0.0 100732 980720 Jan16 www 1000 19471 php-fpm php-fpm: pool www 0.0 146248 1081808 Jan16 www 1000 19472 php-fpm php-fpm: pool www 0.0 156560 950324 Jan16 www 1000 19473 php-fpm php-fpm: pool www 0.0 133112 1098576 Jan16 www 1000 19474 php-fpm php-fpm: pool www 0.0 167420 1055832 Jan16 www 1000 19476 php-fpm php-fpm: pool www 0.0 144148 1090256 Jan16 www 1000 19477 php-fpm php-fpm: pool www 0.0 160232 1086956 Jan16 www 1000 19478 php-fpm php-fpm: pool www 0.0 178360 1093672 Jan16 www 1000 19479 php-fpm php-fpm: pool www 0.0 119572 1000984 Jan16 www 1000 19480 php-fpm php-fpm: pool www2 0.0 99488 1075708 Jan16 www 1000 19482 php-fpm php-fpm: pool www2 0.0 146984 1029188 Jan16 www 1000 19483 php-fpm php-fpm: pool www2 0.0 152272 1097468 Jan16 www 1000 19484 php-fpm php-fpm: pool www2 0.0 173892 1016076 Jan16 www 1000 19486 php-fpm php-fpm: pool www2 0.0 161156 1083168 Jan16 www 1000 19487 php-fpm php-fpm: pool www2 0.0 139152 1023412 Jan16 www 1000 19488 php-fpm php-fpm: pool www2 0.0 162748 1158700 Jan16 www 1000 19489 php-fpm php-fpm: pool www2 0.0 181272 1151796 Jan16 www 1000 19490 php-fpm php-fpm: pool www2 0.0 168712 1087008 Jan16 www 1000 19491 php-fpm php-fpm: pool www2 0.0 167252 1070128 Jan16 www 1000 19492 php-fpm php-fpm: pool www2 0.0 142692 1023468 Jan16 www 1000 19493 php-fpm php-fpm: pool www2 0.0 160668 1050168 Jan16 www 1000 19494 php-fpm php-fpm: pool www2 0.0 168236 1029248 Jan16 www 1000 19495 php-fpm php-fpm: pool www2 0.0 105944 1058620 Jan16 www 1000 19496 php-fpm php-fpm: pool www2 0.0 149064 1014912 Jan16 www 1000 19497 php-fpm php-fpm: pool www2 0.0 133652 938272 Jan16 www 1000 19498 php-fpm php-fpm: pool www2 0.0 173588 1086708 Jan16 www 1000 19499 php-fpm php-fpm: pool www2 0.0 196616 1029168 Jan16 www 1000 19500 php-fpm php-fpm: pool www2 0.0 194128 965328 Jan16 www 1000 19501 php-fpm php-fpm: pool www2 0.0 166892 958532 Jan16 www 1000
很多昨天的php-fpm进程居然还在,没释放,昨天改了gd库,用imagick库,查看监控图,确实是修改后内存使用量开始逐渐升高,由此定位问题