经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
Linux 系统环境监测
来源:cnblogs  作者:背对背依靠  时间:2022/12/5 8:51:26  对本文有异议

Linux系统环境监测

Linux系统环境主要监测CPU、内存、磁盘I/O和网络流量。

1. CPU

(1) 查看CPU的负载情况:uptime

可以通过uptime查看系统整体的负载情况。

如果服务器的CPU为1核心,则1分钟的系统平均负载 >=3 说明负载过高,如果服务器的CPU为4核心,则load average中的数字 >=12 负载过高。

  1. root@ubuntu1804:~# uptime
  2. 09:57:53 up 7:17, 2 users, load average: 0.10, 0.03, 0.01
  3. 09:57:53 # 当前时间
  4. up 7:17 # 主机已运行时间
  5. 2 users # 当前登录用户数
  6. load average: 0.10, 0.03, 0.01 # 系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值

(2)linux中查看cpu的逻辑数量:

  1. ehigh@ubuntu:~$ grep -c 'processor' /proc/cpuinfo
  2. 8

CPU:central processing unit,中央处理器。

image

  1. 插槽:表示电脑上插了几个物理cpu
  2. 内核:表示这个物理cpu有几个核心,一个核心就是一个cpu
  3. 逻辑处理器:逻辑上的处理器数量,通过超线程技术将一个处理器模拟出两个处理器出来。
  4. 超线程技术:在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程

cpu发展历程:

  1. 刚开始一个物理cpu只有一个核心,通过提高核心的工作频率来提高性能,但是会产生过多的热量。
  2. 后面因特尔发明了超线程技术,在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程
  3. 后面采用多核架构,在一个物理cpu里面放多个核心,好似一辆汽车放多个发动机。

例如:服务器上面插了一个物理cpu是4核8线程。表示的是这个cpu又4个核心,支持超线程技术,逻辑cpu就是8个。

并发

(3)查看系统中使用CPU最多的进程:top

使用top命令,按下大写的P,可以按cpu使用率排序

  1. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  2. 720 root 20 0 473464 22060 19128 S 1.7 0.2 119:55.14 sunloginclient
  3. 3590 emqx 20 0 3483576 201492 74484 S 1.3 2.0 64:39.37 beam.smp
  4. 984 root 20 0 2754328 50696 5192 S 1.0 0.5 77:32.96 taosd

进程的cpu占用能否超过100%?

  1. 如果你的4核心的cpu,你可以运行400%

判断CPU当前忙不忙?

要结合cpu使用率和队列一起看,如果一分钟内cpu的队列数超过3并且cpu的使用率也很高,说明当前cpu很忙。

(4)查看cpu的使用率:

使用top命令,然后按数字1就可以显示每个cpu的详细信息

  1. top - 10:48:44 up 5 days, 1:15, 1 user, load average: 0.10, 0.14, 0.10
  2. Tasks: 398 total, 1 running, 397 sleeping, 0 stopped, 0 zombie
  3. %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
  4. %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
  5. %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
  6. %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
  7. %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
  8. %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
  9. %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
  10. %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
  11. MiB Mem : 9952.6 total, 5473.8 free, 2145.3 used, 2333.5 buff/cache
  12. MiB Swap: 0.0 total, 0.0 free, 0.0 used. 7477.7 avail Mem
  13. # 96.6 id -- 表示cpu的空闲率是96.6%

2. 内存

(1)查看内存的大小和使用量:

  1. root@ubuntu:~# free -h
  2. total used free shared buff/cache available
  3. Mem: 9.7Gi 2.1Gi 5.4Gi 49Mi 2.3Gi 7.3Gi
  4. Swap: 0B 0B 0B
  5. #选项:
  6. # -h 表示系统会根据值的大小来选择合适的单位,默认是byte
  7. # aotal 总计物理(swap)内存的大小
  8. # used 已使用物理内存(swap)的大小
  9. # free 可用的物理内存(swap)大小
  10. # shared 多个进程共享的内存总额
  11. # buff/cache 磁盘的缓存大小
  12. # available 可以被新应用程序使用的内存大小
  13. # Mem:物理内存的大小
  14. # Swap:交换分区的大小,交换分区就是使用磁盘的一部分空间来模拟内存,当物理内存占用满的时候就将一部分不常用的数据移动到交换分区中。交换分区是临时充当内存的作用,性能很低。

(2)查看系统使用内存最多的进程:

使用top命令然后按大写M就可以按照内存的使用率来进行排序,按e可以按M,G,T 这些单位来显示

  1. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  2. 1377 mysql 20 0 4.8g 0.8g 0.0g S 0.7 7.8 67:01.24 mysqld
  3. 977 root 20 0 7.7g 0.3g 0.0g S 0.0 3.4 32:34.83 java
  4. 3590 emqx 20 0 3.3g 0.2g 0.1g S 0.7 2.0 64:48.04 beam.smp
  5. 446 root 19 -1 0.3g 0.2g 0.2g S 0.0 2.0 1:59.99 systemd-journ

3. 磁盘IO

(1)查看对磁盘读写最多的进程

  1. oot@ubuntu1804:~# iostat -dkp
  2. Linux 4.15.0-156-generic (ubuntu1804) 12/03/2022 _x86_64_ (4 CPU)
  3. Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
  4. loop0 0.00 0.00 0.00 8 0
  5. sda 0.64 16.17 58.90 487458 1775844
  6. sda1 0.01 0.20 0.00 5893 96
  7. sda2 0.00 0.00 0.00 4 0
  8. sda5 0.00 0.11 0.00 3312 0
  9. sda6 0.63 15.79 58.90 476129 1775748
  10. scd0 0.00 0.07 0.00 2056 0
  11. # kB_read/s 每秒从磁盘读入的数据量,单位为K.
  12. # kB_wrtn/s 每秒向磁盘写入的数据量,单位为K.
  13. # kB_read 读入的数据总量,单位为K.
  14. # kB_wrtn 写入的数据总量,单位为K.
  15. # -d 仅显示磁盘统计信息
  16. # -k 以K为单位显示每秒的磁盘请求数,默认单位块.
  17. # -p device | ALL 用于显示块设备及系统分区的统计信息.

服务器很卡,查看CPU使用率不高,内存也够用,但就是卡,尤其是打开新程序或文件时,更卡。此时是哪出问题了?

一般是磁盘IO到达了瓶颈,还企业级ssd可以提高性能瓶颈。

(2)查看哪个进程使用磁盘读写最多

  1. root@ubuntu1804:~# iotop -o
  2. Total DISK READ : 5.79 M/s | Total DISK WRITE : 2.28 M/s
  3. Actual DISK READ: 5.79 M/s | Actual DISK WRITE: 4.64 M/s
  4. TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
  5. 17238 be/4 tom 5.79 M/s 0.00 B/s 0.00 % 64.19 % find /
  6. 17092 be/4 root 0.00 B/s 0.00 B/s 0.00 % 12.71 % [kworker/u256:0]
  7. 476 be/3 root 0.00 B/s 2.28 M/s 0.00 % 5.45 % [jbd2/sda6-8]
  8. # Total DISK READ:总的磁盘读取速度。 Total DISK WRITE:总的磁盘写入速度。
  9. # Actual DISK READ:实际磁盘读的速度 Actual DISK WRITE:实际磁盘写的速度
  10. # TID:进程pid值。
  11. # PRIO:优先级。
  12. # USER:用户。
  13. # DISKREAD:磁盘读取速度。
  14. # DISK WRITE:磁盘写入速度。
  15. # SWAPIN:从swap分区读取数据占用的百分比。
  16. # IO:I/O占用的百分比。
  17. # COMMAND:消耗I/O的进程名。
  18. #命令选项:
  19. # -o, -only 只显示在读写硬盘的程序
  20. # -d SEC, -delay=SEC  设定显示时间间隔。 刷新时间
  21. # 退出,按q或ctrl+C

4. 网络

(1)使用nload监控总体带宽使用情况

  1. tom@ubuntu1804:~$ nload -u h # -u:指定数据的单位 h表示写哦那个会根据数值的大小自动选择单位 例如M G等
  2. Device eth0 [10.0.0.18] (1/2):
  3. ==
  4. Incoming:#进来的网络流量
  5. Curr: 558.33 kBit/s #当前流量
  6. Avg: 297.12 kBit/s #平均流量
  7. Min: 1.39 kBit/s #最小流量
  8. Max: 894.77 kBit/s #最大流量
  9. Ttl: 58.23 MByte #流量总和
  10. Outgoing:#出去的网络流浪
  11. Curr: 16.16 kBit/s
  12. Avg: 15.37 kBit/s
  13. Min: 4.52 kBit/s
  14. Max: 32.62 kBit/s
  15. Ttl: 766.79 kByte

(2)使用nethogs找出使用带宽最多的进程

  1. tom@ubuntu1804:~$ sudo nethogs
  2. NetHogs version 0.8.5-2
  3. PID USER PROGRAM DEV SENT RECEIVED
  4. 1733 root wget eth0 13.352 4317.425 KB/sec
  5. 1605 tom sshd: tom@pts/0 eth0 1.025 0.07013.276 KB/sec
  6. 1732 root wget tom@pts/0 eth0 0.000 0.000 KB/sec
  7. ? root unknown TCP 0.000 0.000 KB/sec
  8. TOTAL 0.000 0.000 KB/sec 14.378 4317.701
  9. # PID:行程 ID。
  10. # USER:行程的拥有者。
  11. # PROGRAM:程序路径。
  12. # DEV:网络接口。
  13. # SENT:目前传送数据的速度。
  14. # RECEIVED:目前接收数据的速度
  15. #TOTAL 总计、总和
  16. #快捷键:
  17. # m:切换带宽单位,可用单位有 KB/s、KB、B、MB。
  18. # r:以数据接收速度排序。
  19. # s:以数据传送速度排序。
  20. # q:离开 NetHogs。

原文链接:https://www.cnblogs.com/heyongshen/p/16947514.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号