美文网首页
linux 内存和磁盘不够了怎么办

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

作者: ZaneYo | 来源:发表于2021-01-14 15:03 被阅读0次

    内存不够的情况

    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

    • -h --human-readable 使用人类可读的格式
    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)

    • -s 或--summarize 仅显示总计
    • h 或 --human-readable 使用人类可读的格式
    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
    

    相关文章

      网友评论

          本文标题:linux 内存和磁盘不够了怎么办

          本文链接:https://www.haomeiwen.com/subject/pdsvaktx.html