博客cPen_web
知识点1 psutil介绍
#应用于系统监控
psutil介绍
·process and system utilities # 注:utilities工具 进程和系统工具
·能够轻松的实现获取系统运行的进程和系统利用率(CPU、内存、磁盘、网络等)信息,主要应用于系统监控。
·实现了同等命令命令行实现的功能:ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等
·跨平台:linux、windows、OS X、FreeBSD和Sun Solaris等
·主要功能包含:CPU、磁盘、内存、网络、进程
# 注:ps 看进程
# 注:top 监控系统性能 (类似 任务管理器)
# 注:lsof 监控内存打开的文件数 list open file
# 注:netstat 网络连接状态
# 注:ifconfig 网卡信息
# 注:who 谁连接上来
# 注:df 看磁盘 (挂载/使用率)
# 注:磁盘文件 /dev
# 注:kill 进程 杀死或重新加载
# 注:free 看内存的
# 注:nice 看优先级
# 注:iostat 查看磁盘读写情况
# 注:iostat -x 1 查看其他
# 注:uptime top的第1行输出
# 注:pidof 看进程pid号
# 注:taskset 看当前任务 对当前任务进行一些设置
# 注:pmap 看进程的内存
# 注:CPU的使用率超过50% 考虑扩容
示例1:top 监控系统性能 (类似 任务管理器)
[root@cPen_A ~]# top
#-------------------------------------------------------------------------------------------
top - 09:49:55 up 7:57, 8 users, load average: 0.01, 0.02, 0.05
# 平均负载 1分钟内的平均使用率 5分钟内 15分钟内
#-------------------------------------------------------------------------------------------
Tasks: 127 total, 1 running, 126 sleeping, 0 stopped, 0 zombie
# 注:任务 zombie僵尸进程状态
#-------------------------------------------------------------------------------------------
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
# 注:看当前cpu当前状态 us用户空间 sy系统空间
# 注:id空闲状态(1s内99.8%属于空闲状态)、ni使用率(越高表示系统相当繁忙)
# 注:ni高时 考虑扩容 或者代码问题陷入循环
# 注:按1显示每1个CPU的使用率 (说的是它的逻辑CPU)
#-------------------------------------------------------------------------------------------
KiB Mem : 3861308 total, 3283352 free, 223188 used, 354768 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 3398432 avail Mem
# 注:Mem 内存
# 注:它的内存 swap 交换分区 在磁盘上面开辟1片空间出来供内存使用
# 注:buff/cache 缓存
#-------------------------------------------------------------------------------------------
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5258 root 20 0 0 0 0 S 0.3 0.0 0:00.12 kworker/1:0
1 root 20 0 125524 4040 2600 S 0.0 0.1 0:02.30 systemd
# 注:按占用多少CPU去排
#-------------------------------------------------------------------------------------------
# 注:物理CPU是实实在在镶嵌在主板上的
# 注:逻辑CPU 真正做事情的 (类似1个CPU上面有2个核/1个CPU上面有2组芯片)
#-------------------------------------------------------------------------------------------
示例2:运维做什么?保证服务7*24小时正常运行
1、监控到位
2、根据监控做处理/扩容
3、自动化 脚本
示例3:fdisk -l 查看磁盘分区
[root@cPen_A dev]# fdisk -l # 注:查看磁盘分区
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
[root@cPen_A ~]# cd /dev
[root@cPen_A dev]# ls sda
sda sda1 sda2
[root@cPen_A dev]# ls -al sda
brw-rw---- 1 root disk 8, 0 11月 24 19:32 sda # 注:块设备文件
# 注:不能直接写入,需要把它挂到某个目录下,去目录的操作就是对磁盘分区的操作
[root@cPen_A dev]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda1 1038336 153512 884824 15% /boot # 注:sda1盘 挂到/boot目录下
# 注:磁盘满了怎么解决?答:盘可以加 就扩容盘 ,盘不可以加 就扩容机器
示例4:iostat查看磁盘读写情况
#iostat -x 1 展示它的其他信息 重点关注util (读写状态)
[root@cPen_C yum.repos.d]# yum install sysstat
[root@cPen_A ~]# iostat -x 1 # 注:-x 展示他的其他信息 ,1 1s钟
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
scd0

本文详细介绍使用psutil模块监控Linux系统性能指标,包括CPU、内存、磁盘、网络及进程管理,并通过Python发送邮件实现报警与报表功能。
最低0.47元/天 解锁文章





