linux 内存和磁盘不够了怎么办

2021-01-14  本文已影响0人  ZaneYo

内存不够的情况

1 打印占用内存最多的前十个进程

 ps -eo rss,pid,user,command --sort -rss | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' |cut -d "" -f2 | cut -d "-" -f1 |head -n 10

ps 语法

ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

发现好多npm相关的

23.81 Mb npm list
..
17.48 Mb npm
16.60 Mb npm
...

查看进程
ps -eo rss,pid,user,command --sort -rss | grep npm

       pid
24376 31593 nobody   npm list
24372 18905 nobody   npm list
21496 17180 nobody   npm list
21476  5445 nobody   npm list
17904 31589 nobody   npm
16996 18902 nobody   npm
15060  9146 nobody   npm
14896  9137 nobody   npm
12664   380 nobody   npm
12372   377 nobody   npm

sudo kill -9 [pid]

2 腾讯服务器自带的云镜和云监控占用了一点内存

卸载云镜命令
bash /usr/local/qcloud/YunJing/uninst.sh
卸载云监控命令 (barad_agent top中查看到的进程名称)
wget -qO- https://raw.githubusercontent.com/littleplus/TencentAgentRemove/master/remove.sh | bash
然后手动kill掉 barad_agent 对应的进程
rm -rf /usr/local/qcloud

3 手动临时清理缓存

清理页面缓存
echo 1 > /proc/sys/vm/drop_caches
清理目录缓存和inodes
echo 2 > /proc/sys/vm/drop_caches
清理pagecache、dentries和inodes
echo 3 > /proc/sys/vm/drop_caches
清理文件系统缓存和清理僵尸(zombie)对象和它们占用的内存
sync

free -h
优化前

 total        used        free      shared  buff/cache   available
Mem:           985M        756M         76M        5.9M        152M         85M
Swap:            0B          0B          0B

优化后

             total        used        free      shared  buff/cache   available
Mem:           985M        561M        262M        5.9M        161M        279M
Swap:            0B          0B          0B

磁盘不足的情况

会报错 No space left on device
查看磁盘使用情况使用 df命令 (英文全拼:disk free)
最常用的命令 df -h

Filesystem      Size  Used Avail Use% Mounted on
udev            7.6G     0  7.6G   0% /dev
tmpfs           1.6G  129M  1.4G   9% /run
/dev/vda1       197G  197G     0 100% /   #这里已经满了
tmpfs           7.6G     0  7.6G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.6G     0  7.6G   0% /sys/fs/cgroup
tmpfs           1.6G     0  1.6G   0% /run/user/0

/dev/vda1 满了解决办法

使用du命令查看指定的目录或文件所占用的磁盘空间(英文全拼:disk usage)

cd /
du -sh *
可以查看到哪个文件占用的磁盘最多
一般是存放log的文件 删除log 重新查看磁盘使用情况

优化后

Filesystem      Size  Used Avail Use% Mounted on
udev            7.6G     0  7.6G   0% /dev
tmpfs           1.6G   28M  1.5G   2% /run
/dev/vda1       197G   41G  149G  22% /
tmpfs           7.6G     0  7.6G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.6G     0  7.6G   0% /sys/fs/cgroup
tmpfs           1.6G     0  1.6G   0% /run/user/0
上一篇下一篇

猜你喜欢

热点阅读