Linux 系统环境监测
Linux系统环境监测
Linux系统环境主要监测CPU、内存、磁盘I/O和网络流量。
1. CPU
(1) 查看CPU的负载情况:uptime
可以通过uptime查看系统整体的负载情况。
如果服务器的CPU为1核心,则1分钟的系统平均负载 >=3 说明负载过高,如果服务器的CPU为4核心,则load average中的数字 >=12 负载过高。
root@ubuntu1804:~# uptime
09:57:53 up 7:17, 2 users, load average: 0.10, 0.03, 0.01
09:57:53 # 当前时间
up 7:17 # 主机已运行时间
2 users # 当前登录用户数
load average: 0.10, 0.03, 0.01 # 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
(2)linux中查看cpu的逻辑数量:
ehigh@ubuntu:~$ grep -c 'processor' /proc/cpuinfo
8
CPU:central processing unit,中央处理器。

插槽:表示电脑上插了几个物理cpu
内核:表示这个物理cpu有几个核心,一个核心就是一个cpu
逻辑处理器:逻辑上的处理器数量,通过超线程技术将一个处理器模拟出两个处理器出来。
超线程技术:在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程
cpu发展历程:
刚开始一个物理cpu只有一个核心,通过提高核心的工作频率来提高性能,但是会产生过多的热量。
后面因特尔发明了超线程技术,在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程
后面采用多核架构,在一个物理cpu里面放多个核心,好似一辆汽车放多个发动机。
例如:服务器上面插了一个物理cpu是4核8线程。表示的是这个cpu又4个核心,支持超线程技术,逻辑cpu就是8个。
并发
(3)查看系统中使用CPU最多的进程:top
使用top命令,按下大写的P,可以按cpu使用率排序
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
720 root 20 0 473464 22060 19128 S 1.7 0.2 119:55.14 sunloginclient
3590 emqx 20 0 3483576 201492 74484 S 1.3 2.0 64:39.37 beam.smp
984 root 20 0 2754328 50696 5192 S 1.0 0.5 77:32.96 taosd
进程的cpu占用能否超过100%?
如果你的4核心的cpu,你可以运行400%
判断CPU当前忙不忙?
要结合cpu使用率和队列一起看,如果一分钟内cpu的队列数超过3并且cpu的使用率也很高,说明当前cpu很忙。
(4)查看cpu的使用率:
使用top命令,然后按数字1就可以显示每个cpu的详细信息
top - 10:48:44 up 5 days, 1:15, 1 user, load average: 0.10, 0.14, 0.10
Tasks: 398 total, 1 running, 397 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.0 us, 3.4 sy, 0.0 ni, 96.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%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
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 9952.6 total, 5473.8 free, 2145.3 used, 2333.5 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 7477.7 avail Mem
# 96.6 id -- 表示cpu的空闲率是96.6%
2. 内存
(1)查看内存的大小和使用量:
root@ubuntu:~# free -h
total used free shared buff/cache available
Mem: 9.7Gi 2.1Gi 5.4Gi 49Mi 2.3Gi 7.3Gi
Swap: 0B 0B 0B
#选项:
# -h 表示系统会根据值的大小来选择合适的单位,默认是byte
# aotal 总计物理(swap)内存的大小
# used 已使用物理内存(swap)的大小
# free 可用的物理内存(swap)大小
# shared 多个进程共享的内存总额
# buff/cache 磁盘的缓存大小
# available 可以被新应用程序使用的内存大小
# Mem:物理内存的大小
# Swap:交换分区的大小,交换分区就是使用磁盘的一部分空间来模拟内存,当物理内存占用满的时候就将一部分不常用的数据移动到交换分区中。交换分区是临时充当内存的作用,性能很低。
(2)查看系统使用内存最多的进程:
使用top命令然后按大写M就可以按照内存的使用率来进行排序,按e可以按M,G,T 这些单位来显示
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1377 mysql 20 0 4.8g 0.8g 0.0g S 0.7 7.8 67:01.24 mysqld
977 root 20 0 7.7g 0.3g 0.0g S 0.0 3.4 32:34.83 java
3590 emqx 20 0 3.3g 0.2g 0.1g S 0.7 2.0 64:48.04 beam.smp
446 root 19 -1 0.3g 0.2g 0.2g S 0.0 2.0 1:59.99 systemd-journ
3. 磁盘IO
(1)查看对磁盘读写最多的进程
oot@ubuntu1804:~# iostat -dkp
Linux 4.15.0-156-generic (ubuntu1804) 12/03/2022 _x86_64_ (4 CPU)
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
loop0 0.00 0.00 0.00 8 0
sda 0.64 16.17 58.90 487458 1775844
sda1 0.01 0.20 0.00 5893 96
sda2 0.00 0.00 0.00 4 0
sda5 0.00 0.11 0.00 3312 0
sda6 0.63 15.79 58.90 476129 1775748
scd0 0.00 0.07 0.00 2056 0
# kB_read/s 每秒从磁盘读入的数据量,单位为K.
# kB_wrtn/s 每秒向磁盘写入的数据量,单位为K.
# kB_read 读入的数据总量,单位为K.
# kB_wrtn 写入的数据总量,单位为K.
# -d 仅显示磁盘统计信息
# -k 以K为单位显示每秒的磁盘请求数,默认单位块.
# -p device | ALL 用于显示块设备及系统分区的统计信息.
服务器很卡,查看CPU使用率不高,内存也够用,但就是卡,尤其是打开新程序或文件时,更卡。此时是哪出问题了?
一般是磁盘IO到达了瓶颈,还企业级ssd可以提高性能瓶颈。
(2)查看哪个进程使用磁盘读写最多
root@ubuntu1804:~# iotop -o
Total DISK READ : 5.79 M/s | Total DISK WRITE : 2.28 M/s
Actual DISK READ: 5.79 M/s | Actual DISK WRITE: 4.64 M/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
17238 be/4 tom 5.79 M/s 0.00 B/s 0.00 % 64.19 % find /
17092 be/4 root 0.00 B/s 0.00 B/s 0.00 % 12.71 % [kworker/u256:0]
476 be/3 root 0.00 B/s 2.28 M/s 0.00 % 5.45 % [jbd2/sda6-8]
# Total DISK READ:总的磁盘读取速度。 Total DISK WRITE:总的磁盘写入速度。
# Actual DISK READ:实际磁盘读的速度 Actual DISK WRITE:实际磁盘写的速度
# TID:进程pid值。
# PRIO:优先级。
# USER:用户。
# DISKREAD:磁盘读取速度。
# DISK WRITE:磁盘写入速度。
# SWAPIN:从swap分区读取数据占用的百分比。
# IO:I/O占用的百分比。
# COMMAND:消耗I/O的进程名。
#命令选项:
# -o, -only 只显示在读写硬盘的程序
# -d SEC, -delay=SEC 设定显示时间间隔。 刷新时间
# 退出,按q或ctrl+C
4. 网络
(1)使用nload监控总体带宽使用情况
tom@ubuntu1804:~$ nload -u h # -u:指定数据的单位 h表示写哦那个会根据数值的大小自动选择单位 例如M G等
Device eth0 [10.0.0.18] (1/2):
==
Incoming:#进来的网络流量
Curr: 558.33 kBit/s #当前流量
Avg: 297.12 kBit/s #平均流量
Min: 1.39 kBit/s #最小流量
Max: 894.77 kBit/s #最大流量
Ttl: 58.23 MByte #流量总和
Outgoing:#出去的网络流浪
Curr: 16.16 kBit/s
Avg: 15.37 kBit/s
Min: 4.52 kBit/s
Max: 32.62 kBit/s
Ttl: 766.79 kByte
(2)使用nethogs找出使用带宽最多的进程
tom@ubuntu1804:~$ sudo nethogs
NetHogs version 0.8.5-2
PID USER PROGRAM DEV SENT RECEIVED
1733 root wget eth0 13.352 4317.425 KB/sec
1605 tom sshd: tom@pts/0 eth0 1.025 0.07013.276 KB/sec
1732 root wget tom@pts/0 eth0 0.000 0.000 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 0.000 0.000 KB/sec 14.378 4317.701
# PID:行程 ID。
# USER:行程的拥有者。
# PROGRAM:程序路径。
# DEV:网络接口。
# SENT:目前传送数据的速度。
# RECEIVED:目前接收数据的速度
#TOTAL 总计、总和
#快捷键:
# m:切换带宽单位,可用单位有 KB/s、KB、B、MB。
# r:以数据接收速度排序。
# s:以数据传送速度排序。
# q:离开 NetHogs。
Linux 系统环境监测的更多相关文章
- 在Linux系统下运行微信Web开发者工具
微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux ...
- Linux实战教学笔记06:Linux系统基础优化
第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...
- Linux系统中的Device Mapper学习
在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...
- 玩转 Linux 系统的方法论
Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...
- Linux 系统中发博客必备的五大图片处理神器
发博客时,总免不了要用图片说话.经过长时间的磨合,在 Linux 桌面系统下有几款图片处理软件我已经用得比较顺手了.这几款软件在 Linux 世界使用广泛,各个 Linux 发行版的软件仓库中都有自带 ...
- 探索 Linux 系统的启动过程
引言 之所以想到写这些东西,那是因为我确实想让大家也和我一样,把 Linux 桌面系统打造成真真正正日常使用的工具,而不是安装之后试用几把再删掉.我是真的在日常生活和工作中都使用 Linux,比如在 ...
- 在linux系统中安装VSCode(Visual Studio Code)
在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 ...
- 如何重置硬盘遭到“损坏”的Linux系统root用户密码
传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名.而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障 ...
- Linux 系统中的MySQL数据库默认区分大小写
今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...
- 如何配置Linux系统的网络IP地址
一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...
随机推荐
- Kubernetes(K8S)特性有哪些?
Kubernetes简介 Kubernetes是一个开源的,用于管理云平台中做个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单且高效,Kubernetes提供了应用部署,规划 ...
- Logstash:如何处理 Logstash pipeline 错误信息
转载自:https://elasticstack.blog.csdn.net/article/details/114290663 在我们使用 Logstash 的时候经常会出现一些错误.比如当我们使用 ...
- Elasticsearch:理解 mapping 中的 null_value
转载自:https://elasticstack.blog.csdn.net/article/details/114266732 null 不能被索引或搜索. 当字段设置为 null(或空数组或 所有 ...
- 03_配置Java环境变量
配置Java环境变量 右键我的电脑-属性-高级系统设置-环境变量 系统变量-新建-变量名JAVA_HOME,变量值为JDK安装路径 系统变量-新建-变量名CLASSPATH,变量值为英文输入法下的. ...
- Vue+vant移动端处理弹窗不能滑动问题
自己在做项目开发时,使用vantUI组件,在项目中遇到了弹窗组件里面当内容过多时,会出现滚动卡顿或者不能滚动问题,开始一直以为是自己的样式写的有问题,检查下来才发现并不是,而是弹窗组件的问题,于是找到 ...
- 设计模式之观察者模式_C++
1 // ADBHelper.cpp : This file contains the 'main' function. Program execution begins and ends there ...
- 2. 单主机 Elasticsearch 双节点或多节点集群环境部署
我已经买了一年的腾讯云轻量级服务器,并且安装好了ES,也做了一些系统配置,比如 修改vm.max_map_count.修改文件描述符数量 同时,也用ES安装目录下的 bin/elasticsearch ...
- Codeforces Round #801 (Div. 2) C(规律证明)
Codeforces Round #801 (Div. 2) C(规律证明) 题目链接: 传送门QAQ 题意: 给定一个\(n * m\)的矩阵,矩阵的每个单元的值为1或-1,问从\((1,1)\)开 ...
- 2022最新版JDK1.8的安装教程、包含jdk1.8的提取码(亲测可用)
文章目录 1.jdk的安装 1.1.下载(百度网盘jdk1.8提取码永久有效) 1.2.双击提取出来的exe,运行程序.如下图 1.3.进入安装向导 1.4.选择默认(安装所有的组件).同时更改安装路 ...
- Nginx配置-1
1.绑定nginx到指定cpu [root@nginx conf.d]# vim /apps/nginx/conf/nginx.conf worker_processes 2; worker_cpu_ ...