4

❤️给你的Linux把把脉(内存、磁盘、CPU、网络)❤️

 3 years ago
source link: https://blog.csdn.net/weixin_39032019/article/details/119847758
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

❤️给你的Linux把把脉(内存、磁盘、CPU、网络)❤️

置顶 不吃西红柿丶 2021-08-22 08:27:03 18924
专栏收录该内容
28 篇文章 63 订阅

🍅 作者主页:不吃西红柿

🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌。简历模板、职场PPT模板、技术难题交流、面试套路尽管【关注】私聊我。

🍅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

今日重点

   ① 学会查看linux各种状态,包括:网络IO、磁盘、CPU、内存等;

   ② 学会理解命令所代表的含义,能够迅速发现集群存在的问题。

1、核心命令

linux 监控网络IO、磁盘、CPU、内存:

  • CPU:vmstat 、sar –u、top
  • 磁盘IO:iostat –xd、sar –d、top
  • 网络IO:iftop -n、ifstat、dstat –nt、sar -n DEV 2 3
  • 磁盘容量:df –h 
  • 内存使用:free –m、top

2、常用命令

(1)内存:条数、每条大小、内存是DDR4还是DDR3、内存频率是2666MT/S还是1600MT/s

条数: dmidecode|grep -A5 'Memory Device'|grep Size | grep -v Installed |wc -l 

每条大小:   dmidecode|grep -A5 'Memory Device'|grep Size | grep -v Installed |uniq

内存类型:   dmidecode | grep -A16 "Memory Device" | grep 'Type:' |grep -v Unknown |uniq

内存频率:    dmidecode | grep -A16 "Memory Device" | grep 'Speed' |grep -v Unknown |uniq

(2)硬盘:块数,大小

fdisk -l | grep "Disk /dev/sd"

(3)查看什么进程占用端口

netstat -antp | fgrep <port>

(4)查看进程资源

  1. jps -l           #  获取进程id
  2. jmap -heap 21046

(5)CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

(6)CPU核数

cat /proc/cpuinfo| grep "cpu cores"| uniq

(7)CPU主频

cat /proc/cpuinfo| grep "model name"| uniq


3、核心命令详解

3.1、ps aux

ps命令用于查看系统中的进程状态

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 ● USER,进程所有者的用户名。
 ● PID,进程号,可以唯一标识该进程。
 ● %CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
 ● %MEM,进程使用内存的百分比。
 ● VSZ,进程使用的虚拟内存大小,以K为单位。
 ● RSS,进程占用的物理内存的总数量,以K为单位。
 ● TTY,进程相关的终端名。
 ● STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
 ● START,进程开始运行时间。
 ● TIME,进程使用的总CPU时间。
 ● COMMAND,被执行的命令行。


3.2、Top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

1、上半部分显示了整体系统负载情:

  • top一行:从左到右依次为当前系统时间,系统运行的时间,系统在之前1min、5min和15min内cpu的平均负载值
  • Tasks一行:该行给出进程整体的统计信息,包括统计周期内进程总数、运行状态进程数、休眠状态进程数、停止状态进程数和僵死状态进程数
  • Cpu(s)一行:cpu整体统计信息,包括用户态下进程、系统态下进程占用cpu时间比,nice值大于0的进程在用户态下占用cpu时间比,cpu处于idle状态、wait状态的时间比,以及处理硬中断、软中断的时间比
  • Mem一行:该行提供了内存统计信息,包括物理内存总量、已用内存、空闲内存以及用作缓冲区的内存量
  • Swap一行:虚存统计信息,包括交换空间总量、已用交换区大小、空闲交换区大小以及用作缓存的交换空间大小

2、下半部分显示了各个进程的运行情况:

  • PID: 进程pid
  • USER: 拉起进程的用户
  • PR: 该列值加100为进程优先级,若优先级小于100,则该进程为实时(real-time)进程,否则为普通(normal)进程,实时进程的优先级更高,更容易获得cpu调度,以上输出结果中,java进程优先级为120,是普通进程,had进程优先级为2,为实时进程,migration 进程的优先级RT对应于0,为最高优先级
  • NI: 进程的nice优先级值,该列中,实时进程的nice值为0,普通进程的nice值范围为-20~19
  • VIRT: 进程所占虚拟内存大小(默认单位kB)
  • RES: 进程所占物理内存大小(默认单位kB)
  • SHR: 进程所占共享内存大小(默认单位kB)
  • S: 进程的运行状态
  • %CPU: 采样周期内进程所占cpu百分比
  • %MEM: 采样周期内进程所占内存百分比
  • TIME+: 进程使用的cpu时间总计
  • COMMAND: 拉起进程的命令

【西红柿寄语】

1、遇到问题不要慌。根据经验,再通过命令排查内存、磁盘、网络、cpu,问题无非就这几类,切不可着急忙慌乱改一通,让简单问题复杂化。

2、根据以上命令,提前设置监控预警。监控预警能够让你及时发现系统的性能信息、比如磁盘快满了,内存超负荷了,我们可以提前作出调整。


热门专栏推荐:

🥇 大数据集锦专栏:大数据-硬核学习资料 & 面试真题集锦 
🥈 数据仓库专栏:数仓发展史、建设方法论、实战经验、面试真题 
🥉 Python专栏:Python相关黑科技:爬虫、算法、小工具 

(优质好文持续更新中……)✍


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK