给你的Linux把把脉(内存、磁盘、CPU、网络)_%mem-程序员宅基地

技术标签: 大数据集锦  linux  面试知识集锦  大数据  

作者主页:不吃西红柿

简介:程序员宅基地专家、信息技术智库公号作者。简历模板、职场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、根据以上命令,提前设置监控预警。监控预警能够让你及时发现系统的性能信息、比如磁盘快满了,内存超负荷了,我们可以提前作出调整。

添加文末公众号「信息技术智库」:

硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、前端等。

送书抽奖丨技术互助丨粉丝福利

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39032019/article/details/119847758

智能推荐

running pre-commit hook lint-staged 33 m33m 33m Some of your tasks use git add command. Plea_> running pre-commit hook: lint-staged some of y-程序员宅基地

文章浏览阅读5.7k次。这个问题可能是编码的整体规范不太符合标准 最好是能好好检测一下自己刚写的代码如果实在想提交在项目中找到 (pre-commit)文件把# Run hooknode "./node_modules/yorkie/src/runner.js" pre-commit || { echo echo "pre-commit hook failed (add --no-verify to bypass)" exit 1}这段注释掉在提交 提交完再还原就好了..._> running pre-commit hook: lint-staged some of your tasks use `git add`

关于windows系统安装grafana无法访问的问题_grafana官网 打不开了-程序员宅基地

文章浏览阅读4.6k次,点赞2次,收藏7次。最近因为需要对服务器做监控,同事推荐了grafana做前端展示,然后按照官方文档下载解压及一系列操作后,启动grafana-server.exe后,无法访问web端,然后百度了半天找到一个链接解答了我的问题,(原地址:http://www.freesion.com/article/736862253/)。官方地址:https://grafana.com/grafana/download在官..._grafana官网 打不开了

Python MySQL合并_myresult = mycursor.fetchall()-程序员宅基地

文章浏览阅读1.1k次。创建新表表中添加数据连接两个或多个表左连接右连接_myresult = mycursor.fetchall()

解决ssh登陆秘钥失效问题_ssh秘钥过期时间-程序员宅基地

文章浏览阅读1.6k次。报如下错误输入命令:ssh-keygen -R IP已经可以登陆了_ssh秘钥过期时间

【终结版】小家电安规要求以及世界各国安规认证知识分享-程序员宅基地

文章浏览阅读2.9k次,点赞7次,收藏42次。安规作为诸多电子产品必须要做的认证,设计的范围非常广泛。安规认证是什么?有哪些申请流程?电子产品的安规基本要求有多少?这期为大家简单介绍一下安规知识,以下为正文:(文末有PPT百度网盘链接..._电子设备的安规要求

java代码实现hive的基本操作_将java代码cunfanghive-程序员宅基地

文章浏览阅读1.2k次。java代码实现hive的基本操作步骤pom.xlclass类编写注意事项步骤1.)pom.xml配置文件2.)class类pom.xl在已有的hadoop、hbase相关配置的基础上添加hive的jdbc驱动包。 <!-- 添加hive的jdbc驱动包 --> <dependency> <groupId>or..._将java代码cunfanghive

随便推点

linux 下python flask,python control linux (flask)-程序员宅基地

文章浏览阅读91次。I was trying to build a web-based utility for Linux Management and I found those are not familiar to me with which Node.js, ShellJS, ... etc. Luckily I found another way to control the underlying Linu..._python flask中control

ubuntu 16.04升级到18.04 ros-moveit安装问题_ubuntu升级会影响ros吗-程序员宅基地

文章浏览阅读1k次。ubuntu 16.04升级到18.04 ros-moveit安装问题ubuntu版本与ROS版本适配安装moveitubuntu版本与ROS版本适配ubuntu 16.04对应的是ROS Kinetic,ubuntu 18.04对应的是ROS Melodic。安装moveit跟着moveit官方教程走,官网教程链接在执行下面两行命令时sudo apt-get install ros-..._ubuntu升级会影响ros吗

MAC 安装mysql及遇到问题_please configure the 'hostname' command to return -程序员宅基地

文章浏览阅读394次。1。安装步骤参照https://www.cnblogs.com/bookwed/p/5896619.html 2.出现问题1)缺data-dumperA 现象[root@localhost mysql]#./scripts/mysql_install_db --user=mysql --datadir=/usr/app/mysql/data/mysqlFATAL ERROR: please ins..._please configure the 'hostname' command to return a correct hostname.

range的用法_range前后-程序员宅基地

文章浏览阅读2k次。a = range(5) print(a)for i in range(5): print(i)i = 1 while i &lt;=5: print(‘hello’) i +=1for i in range(5): print(‘hello’)for i in range(1,5): print(i)range 后面可以写1 for i in range(1,..._range前后

小知识点总结-程序员宅基地

文章浏览阅读89次。JS变量之前的+号 比如 if (+comment === 1) 这个+什么意思 可以理解为Number(value)会将其按照Number函数的规则转换为数值或者NaN,规则大概如下:Boolean:true返回1,false返回0数据值,直接返回null,返回0undefined,返回NaN对于字符串,将其转换为十进制...

linux命令fdisk,Linux fdisk 命令使用详解-程序员宅基地

文章浏览阅读4.2k次。一、fdisk 的介绍fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux 、fat32、 linux 、linux swap 、fat16 以及其实类Unix类操作系统的文件系统..._fdisk命令详解