Linux常用问题排查命令

  • 发表于
  • Linux

Linux运维中常用到的一些基础命令记录,本文会持续更新。

Linux运维常见问题

  • 内存占用大/内存不会释放
  • 日志文件太大/清空与删除日志文件
  • 进程太多/进程释放与优化
  • 服务配置与优化
  • 安全配置

常用命令

# 内存占用
ps -aux | sort -k4nr

# 内存占用最大的10个进程
ps -aux | sort -k4nr | head -n 10

# 进行kill掉
kill -9 $(ps aux | grep 进程名 |grep -v grep| awk '{print $2}')

# 查看内存占用最大的进程
ps aux| grep -v "USER" |sort -n -r -k 4 |awk 'NR==1{ print $0}'

# 内存占用情况
free -m

# 动态监视进程消耗内存等信息
top

# 内核态内存占用
slabtop

# 查看内存使用的动态变化
vmstat 1
# 其中vmstat N 代表每隔N秒更新一次数据。

# 查看当前php-fpm进程平均占用内存情况,一般来说一个php-fpm进程占用的内存为30-40MB,本次查询的结果是60MB,显然是多了。命令如下
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'

# 查看当前php-fpm总进程数
ps -ylC php-fpm --sort:rss

# 查看当前php-fpm进程的内存占用情况及启动时间
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'|grep www|sort -nrk5

清理内存

# 释放占用的缓存空间
sync #先将内存刷出,避免数据丢失
echo 1 > /proc/sys/vm/drop_caches #释放pagecache
echo 2 > /proc/sys/vm/drop_caches #释放dentry和inode
echo 3 > /proc/sys/vm/drop_caches #释放pagecache、dentry和inode

更多Linux内在自动清理释放文章可看《CentOS/Linux内存占用大,用Shell脚本自动定时清除/释放内存》。