解决linux服务器内存占用过大问题

post by rocdk890 / 2013-9-29 10:49 Sunday linux技术
  今天到公司按照惯例检查了下所有服务器的状态,发现有台服务器的内存占用比平常大很多,如下图
点击查看原图
马上qq上问了下程序开发是否最近这1-2天改了什么东西,在得知没有改什么的情况下,马上重启了下php-fpm和nginx,重启之后看了下,内存释放出了1G,但这还不行,因为这台服务器是8G内存,平时最多使用4G多的样子,想今天使用到了7G多都快把服务器内存占用完了,很明显是不正常的,继续进行检查.
  在检查过程中,我使用了top来看到底是哪个进程占用内存最大,看了近1分钟没有发现什么,然后使用命令查看占用内存最大的10个进程:
ps -aux | sort -k4nr | head -n 10
也只是显示了nginx和php-fpm占用内存最大,但我重启了这两个进程,看来跟他们2个无关,我又开始怀疑是不是服务器被黑了,马上查看进程ps aux,这一看就发现了问题,有个脚本在进程里有很多个产生,马上执行下面命令进行kill掉:
kill -9 $(ps aux | grep 进程名 |grep -v grep| awk '{print $2}')
现在这看内存使用率,内存终于正常了,好了,再观察几分钟,没有问题退出服务器了,继续检查那个脚本的问题.

ps:这里要强调的事,不要根据自己的直觉去随便以为是什么的问题,最好是调查清楚了再去执行,比如我这里就是根据自己的直觉以为是nginx和php-fpm的问题,还好是跟老大打了招呼重启的,不然后果很严重.

再给大家一个查看内存占用最大的进程的命令:
ps aux| grep -v "USER" |sort -n -r -k 4 |awk 'NR==1{ print $0}'
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-456.html

标签: linux 查看 内存 占用 过大 ps

评论: