Skip to main content

如何查看 Linux 下 CPU、内存和交换分区的占用率? | Linux 中国


在 Linux 下有很多可以用来查看内存占用情况的命令和选项,但是我并没有看见关于内存占用率的更多的信息。
在大多数情况下我们只想查看内存使用情况,并没有考虑占用的百分比究竟是多少。如果你想要了解这些信息,那你看这篇文章就对了。我们将会详细地在这里帮助你解决这个问题。
这篇教程将会帮助你在面对 Linux 服务器下频繁的内存高占用情况时,确定内存使用情况。
而在同时,如果你使用的是 free -m 或者 free -g,占用情况描述地也并不是十分清楚。
这些格式化命令属于 Linux 高级命令。它将会对 Linux 专家和中等水平 Linux 使用者非常有用。
方法-1:如何查看 Linux 下内存占用率?
我们可以使用下面命令的组合来达到此目的。在该方法中,我们使用的是 free 和 awk 命令的组合来获取内存占用率。
如果你正在寻找其他有关于内存的文章,你可以导航到如下链接。这些文章有 free 命令[1]smem 命令[2]ps_mem 命令[3]vmstat 命令[4] 及 查看物理内存大小的多种方式[5]
要获取不包含百分比符号的内存占用率:
  1. $ free -t | awk 'NR == 2 {print "Current Memory Utilization is : " $3/$2*100}'
  2. $ free -t | awk 'FNR == 2 {print "Current Memory Utilization is : " $3/$2*100}'
  3. Current Memory Utilization is : 20.4194
要获取不包含百分比符号的交换分区占用率:
  1. $ free -t | awk 'NR == 3 {print "Current Swap Utilization is : " $3/$2*100}'
  2. $ free -t | awk 'FNR == 3 {print "Current Swap Utilization is : " $3/$2*100}'
  3. Current Swap Utilization is : 0
要获取包含百分比符号及保留两位小数的内存占用率:
  1. $ free -t | awk 'NR == 2 {printf("Current Memory Utilization is : %.2f%"), $3/$2*100}'
  2. $ free -t | awk 'FNR == 2 {printf("Current Memory Utilization is : %.2f%"), $3/$2*100}'
  3. Current Memory Utilization is : 20.42%
要获取包含百分比符号及保留两位小数的交换分区占用率:
  1. $ free -t | awk 'NR == 3 {printf("Current Swap Utilization is : %.2f%"), $3/$2*100}'
  2. $ free -t | awk 'FNR == 3 {printf("Current Swap Utilization is : %.2f%"), $3/$2*100}'
  3. Current Swap Utilization is : 0.00%
如果你正在寻找有关于交换分区的其他文章,你可以导航至如下链接。这些链接有 使用 LVM(逻辑盘卷管理)创建和扩展交换分区[6]创建或扩展交换分区的多种方式[7] 和 创建/删除和挂载交换分区文件的多种方式[8]
键入 free 命令会更好地作出阐释:
  1. $ free
  2. total used free shared buff/cache available
  3. Mem: 15867 3730 9868 1189 2269 10640
  4. Swap: 17454 0 17454
  5. Total: 33322 3730 27322
细节如下:
◈ free:是一个标准命令,用于在 Linux 下查看内存使用情况。
◈ awk:是一个专门用来做文本数据处理的强大命令。
◈ FNR == 2:该命令给出了每一个输入文件的行数。其基本上用于挑选出给定的行(针对于这里,它选择的是行号为 2 的行)
◈ NR == 2:该命令给出了处理的行总数。其基本上用于过滤给出的行(针对于这里,它选择的是行号为 2 的行)
◈ $3/$2*100:该命令将列 3 除以列 2 并将结果乘以 100。
◈ printf:该命令用于格式化和打印数据。
◈ %.2f%:默认情况下,其打印小数点后保留 6 位的浮点数。使用后跟的格式来约束小数位。
方法-2:如何查看 Linux 下内存占用率?
我们可以使用下面命令的组合来达到此目的。在这种方法中,我们使用 freegrep 和 awk 命令的组合来获取内存占用率。
要获取不包含百分比符号的内存占用率:
  1. $ free -t | grep Mem | awk '{print "Current Memory Utilization is : " $3/$2*100}'
  2. Current Memory Utilization is : 20.4228
要获取不包含百分比符号的交换分区占用率:
  1. $ free -t | grep Swap | awk '{print "Current Swap Utilization is : " $3/$2*100}'
  2. Current Swap Utilization is : 0
要获取包含百分比符号及保留两位小数的内存占用率:
  1. $ free -t | grep Mem | awk '{printf("Current Memory Utilization is : %.2f%"), $3/$2*100}'
  2. Current Memory Utilization is : 20.43%
要获取包含百分比符号及保留两位小数的交换空间占用率:
  1. $ free -t | grep Swap | awk '{printf("Current Swap Utilization is : %.2f%"), $3/$2*100}'
  2. Current Swap Utilization is : 0.00%
方法-1:如何查看 Linux 下 CPU 的占用率?
我们可以使用如下命令的组合来达到此目的。在这种方法中,我们使用 topprint 和 awk 命令的组合来获取 CPU 的占用率。
如果你正在寻找其他有关于 CPU(LCTT 译注:原文误为 memory)的文章,你可以导航至如下链接。这些文章有 top 命令[9]htop 命令[10]atop 命令[11] 及 Glances 命令[12]
如果在输出中展示的是多个 CPU 的情况,那么你需要使用下面的方法。
  1. $ top -b -n1 | grep ^%Cpu
  2. %Cpu0 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  3. %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  4. %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 5.3 si, 0.0 st
  5. %Cpu3 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  6. %Cpu4 : 10.5 us, 15.8 sy, 0.0 ni, 73.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  7. %Cpu5 : 0.0 us, 5.0 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  8. %Cpu6 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  9. %Cpu7 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
要获取不包含百分比符号的 CPU 占用率:
  1. $ top -b -n1 | grep ^%Cpu | awk '{cpu+=$9}END{print "Current CPU Utilization is : " 100-cpu/NR}'
  2. Current CPU Utilization is : 21.05
要获取包含百分比符号及保留两位小数的 CPU 占用率:
  1. $ top -b -n1 | grep ^%Cpu | awk '{cpu+=$9}END{printf("Current CPU Utilization is : %.2f%"), 100-cpu/NR}'
  2. Current CPU Utilization is : 14.81%
方法-2:如何查看 Linux 下 CPU 的占用率?
我们可以使用如下命令的组合来达到此目的。在这种方法中,我们使用的是 topprint/printf和 awk 命令的组合来获取 CPU 的占用率。
如果在单个输出中一起展示了所有的 CPU 的情况,那么你需要使用下面的方法。
  1. $ top -b -n1 | grep ^%Cpu
  2. %Cpu(s): 15.3 us, 7.2 sy, 0.8 ni, 69.0 id, 6.7 wa, 0.0 hi, 1.0 si, 0.0 st
要获取不包含百分比符号的 CPU 占用率:
  1. $ top -b -n1 | grep ^%Cpu | awk '{print "Current CPU Utilization is : " 100-$8}'
  2. Current CPU Utilization is : 5.6
要获取包含百分比符号及保留两位小数的 CPU 占用率:
  1. $ top -b -n1 | grep ^%Cpu | awk '{printf("Current CPU Utilization is : %.2f%"), 100-$8}'
  2. Current CPU Utilization is : 5.40%
如下是一些细节:
◈ top:是一种用于查看当前 Linux 系统下正在运行的进程的非常好的命令。
◈ -b:选项允许 top 命令切换至批处理的模式。当你从本地系统运行 top 命令至远程系统时,它将会非常有用。
◈ -n1:迭代次数。
◈ ^%Cpu:过滤以 %CPU 开头的行。
◈ awk:是一种专门用来做文本数据处理的强大命令。
◈ cpu+=$9:对于每一行,将第 9 列添加至变量 cpu
◈ printf:该命令用于格式化和打印数据。
◈ %.2f%:默认情况下,它打印小数点后保留 6 位的浮点数。使用后跟的格式来限制小数位数。
◈ 100-cpu/NR:最终打印出 CPU 平均占用率,即用 100 减去其并除以行数。

via: https://www.2daygeek.com/linux-check-cpu-memory-swap-utilization-percentage/

Comments

Popular posts from this blog

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checking a shared sec

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into /opt/course/1/context_default_no_kubectl.sh , but without the use of k

标 题: 关于Daniel Guo 律师

发信人: q123452017 (水天一色), 信区: I140 标  题: 关于Daniel Guo 律师 关键字: Daniel Guo 发信站: BBS 未名空间站 (Thu Apr 26 02:11:35 2018, 美东) 这些是lz根据亲身经历在 Immigration版上发的帖以及一些关于Daniel Guo 律师的回 帖,希望大家不要被一些马甲帖广告帖所骗,慎重考虑选择律师。 WG 和Guo两家律师对比 1. fully refund的合约上的区别 wegreened家是case不过只要第二次没有file就可以fully refund。郭家是要两次case 没过才给refund,而且只要第二次pl draft好律师就可以不退任何律师费。 2. 回信速度 wegreened家一般24小时内回信。郭律师是在可以快速回复的时候才回复很快,对于需 要时间回复或者是不愿意给出确切答复的时候就回复的比较慢。 比如:lz问过郭律师他们律所在nsc区域最近eb1a的通过率,大家也知道nsc现在杀手如 云,但是郭律师过了两天只回复说让秘书update最近的case然后去网页上查,但是上面 并没有写明tsc还是nsc。 lz还问过郭律师关于准备ps (他要求的文件)的一些问题,模版上有的东西不是很清 楚,但是他一般就是把模版上的东西再copy一遍发过来。 3. 材料区别 (推荐信) 因为我只收到郭律师写的推荐信,所以可以比下两家推荐信 wegreened家推荐信写的比较长,而且每封推荐信会用不同的语气和风格,会包含lz写 的research summary里面的某个方面 郭家四封推荐信都是一个格式,一种语气,连地址,信的称呼都是一样的,怎么看四封 推荐信都是同一个人写出来的。套路基本都是第一段目的,第二段介绍推荐人,第三段 某篇或几篇文章的abstract,最后结论 4. 前期材料准备 wegreened家要按照他们的模版准备一个十几页的research summary。 郭律师在签约之前说的是只需要准备五页左右的summary,但是在lz签完约收到推荐信 ,郭律师又发来一个很长的ps要lz自己填,而且和pl的格式基本差不多。 总结下来,申请自己上心最重要。但是如果选律师,lz更倾向于wegreened,