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%sn", 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