Linux 内存占用过高时,应该如何排查问题呢?
回答·20
最热
最新
- top -i //查看占用内存情况,找到占用内存异常的进程的 PID top -H -p 进程的 PID //查看该进程中线程的资源占用情况,找到占用内存高的那个线程的 PID strace -f -t -p 线程的 PID //查看线程的系统调用,找到造成问题的原因 也可以使用 gcore 生成进程的 core file,使用 gdb 进行调试: gdb 进程旳可执行文件 core 文件 backtrace //查看调用栈 info threads //查看线程信息
- 用top命令查看占用高资源的进程 在用top -Hp pid查看该进程中线程的占用情况 用printf查看该线程并jstck打印保存 查看日志辅助找到问题
- top -i //查看占用内存情况,找到占用内存异常的进程的 PID top -H -p 进程的 PID //查看该进程中线程的资源占用情况,找到占用内存高的那个线程的 PID strace -f -t -p 线程的 PID //查看线程的系统调用,找到造成问题的原因 也可以使用 gcore 生成进程的 core file,使用 gdb 进行调试: gdb 进程旳可执行文件 core 文件 backtrace //查看调用栈 info threads //查看线程信息
- 先top,按M按内存使用排序,找出对应的进程,再-Hp找出对应的线程,利用工具查看线程堆栈
- 先查看系统的内存占用top ,排查问题。 重点看右上角的三个值。
- sudo rm -rf / 哈开个玩笑,其实top命令就可以的。
- top-c看看都执行了啥程序,在ps-ef|grep 进程pid,查看程序具体内容,判断是否有大量僵尸进程占用内存,CPU
- top命令先查看占用高的进程
- 看进程,看进程,看进程!
- top 一下,看看是哪个进程占内存