首页 技术教程

⏳ 浅蓝最后一次降雪:2021 年 08 月 12 日


引言

犹有遗簪,不展秋心,能卷几多炎热。 ——勿埋我心

  不细心的你,可以会在不知不觉中让你的硬盘逐渐变“胖”,CPU也开始愈加不堪重负。这个时候,你想要挽回,该怎么做?
  You are lucky,这篇文章会给你提供相关建议。

了解你的硬盘

① 看磁盘

  • df -lh看磁盘
  • df -Th看磁盘

② 看目录

  • du -sh * 看目录大小
  • du -h --max-depth=1 看目录大小
  • du -s /* | sort -nr 查看那个目录占用空间大

找到病根

① 查大文件

  • find /xx/xx -size +400M 查/xx/xx目录下大于400m文件

② 定位文件

  • ls –lhS 将文件以从大到小顺序展现

对症下药

① 解除已删除文件占用

  • lsof | lsof | grep deleted查找
  • kill -s 9 xxx删除xxx指进程号
  • lsof | grep delete | awk -F ' ' '{ print $2}'|xargs kill -9
lsof是列出进程号;grep 过滤其中带删除标识的;awk是截取, print $2截取第二列; xargs是相当于把后面 kill -9的命令放到最前面执行的意思

② 删文件

  • find . -mtime +5 -type f -name "*" -exec rm -f {} \;删除五天以前的文件

其它良方

【df】

通过df指令可以查看磁盘的使用情况:

  a:显示全部的文件系统和各分割区的磁盘使用情形
  i :显示i -nodes的使用量
  k:大小用k来表示 (默认值)
  t:显示某一个文件系统的所有分割区磁盘使用量
  x:显示不是某一个文件系统的所有分割区磁盘使用量
  T:显示每个分割区所属的文件系统名称

常用参数组合:df -hi

【du】

通过du指令可以查询文件或目录的磁盘使用空间:

  a:显示全部目录和其次目录下的每个文件所占的磁盘空间
  b:大小用bytes来表示 (默认值为k bytes)
  c:最后再加上总计 (默认值)
  s:只显示各文件大小的总合 (summarize)
  x:只计算同属同一个文件系统的档案
  L:计算所有的文件大小

常用参数组合:du -hs

【find】

可使用find命令找出占用空间较大的文件

  find / -type f -size +5G 找到大于5G的文件,需要root权限
  find . -type f -size +10000k 查找大于10M的文件
  find -type f -size +500k -and -size -1000k 查找大小为500KB到1000KB之间的文件

【rm】

  f:force 略过不存在的文件,不显示任何信息
  i:interactive 进行任何删除操作前必须先确认
  r/R:recursive 同时删除该目录下的所有目录层

常用参数组合:rm -rf

CPU负载问题

① 使用uptime命令查看机器负载。

#输入
uptime

#输出
up 1 day, 13:14, 3 users, load averages: 2.69 2.21 3.01314

平均负载:表示1、5、15分钟进程队列中的平均进程数量。一般单核大于3的话负载就算高了。

② 查看linux多少cpu与核的命令如下:

#查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

#查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l123456

③ 然后使用top命令查看每个进程占用CPU,内存情况。
top显示时候使用“M”进程会按内存使用排序,按“P”会按CPU使用排序。

④ 如果没有进程占用大量CPU,内存资源呢?那可能就是某个进程阻塞了。
使用ps -ef, 查看哪个进程会卡住,然后去/proc/中找到这个进程对应的文件,看看是否能够正常打开。

⑤ 找到对应文件以后,杀死这个进程或者重启机器即可。

结语

  掌握了这些,别的不说,至少会让你对你的Linux更加了解且对其使用更加得心应手。欢迎有疑惑在勿埋我心评论区留言。




文章评论

目录