性能管理

操作系统对硬件资源统一管理,并把资源分配给各个APP使用,资源的使用情况直接影响到程序运行的速度。 如果资源使用过高,甚至会造成服务器宕机,直接造成业务中断。

实时掌握资源使用情况式每一个系统管理员必备的技能,可以及时发现潜在问题并及时处理。

其实就是  网管。 相当于医生 但是给计算机看病的,为了防患于未然,就需要各种的命令来了解计算机的各种状态:

1、资源管理的命令

2、阈值是多少。(关键指标)

3、如何定位问题

4、如何解决问题

一. CPU

查看命令: ps(静态任务管理器)      top(动态任务管理器)      uptime()

查看项: 进程总数、running队列load值、使用率。

[root@python ~]# ps -ef      或者     ps aux
.........太多了不写了
[root@python ~]# top
.........
[root@python ~]# uptime
.........
# 查看cpu信息   cat /proc/cpuinfo
[root@python ~]# cat /proc/cpuinfo      # 查看cpu信息

cpu 是分 几核几核的。 有几核,这里的信息就会分为几组进行展
processor    : 0       # cpu的逻辑编号是多少,(几核)
vendor_id    : GenuineIntel
cpu family    : 6
model        : 42
model name    : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz # cpu型号
stepping    : 7
microcode    : 0x2e
cpu MHz        : 3001.000
cache size    : 6144 KB
physical id    : 0 # cpu的物理编号(真是存在的cpu)
siblings    : 2
core id        : 0
cpu cores    : 2
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 13
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ssbd ibrs ibpb stibp tsc_adjust arat spec_ctrl intel_stibp flush_l1d arch_capabilities
# flags 代表cpu 支持的功能。
bogomips    : 6002.00
clflush size    : 64
cache_alignment    : 64
address sizes    : 43 bits physical, 48 bits virtual
power management:

 CPU - 进程总数:

总进程数 - 0业务进程数  ≈ 业务进程数.(0业务进程数 意思是装完机之后,初始的这些不算在内。的业务数)

如果cpu使用率高,进程数也多:

  那说明 机器压力大,需要升级配置或者通过集群解决。

如果cpu使用率高,但是业务进程数不多,(一堆乱七八糟的其他进程):

  查看任务管理器中的进程,找找是否有陌生的进程,不认识的百度,综合后续指标 继续判断。

 CPU - running 队列:

预警线: 单核不超过10个

超过说明CPU组员不足,是否是业务进程造成的:

  是:那说明 机器压力大,需要升级配置或者通过集群解决。

  不是: 找到 running队列中的进程,判断是否是恶意的程序,恶意程序直接 Kill 掉,并清除相关的链接

 CPU - load 值 和 使用率:

这两者是成正比的, 使用率高,负载就高

预警线: load average  接受范围 3-5 [单个核  多核就乘以 N ],  使用率80%。(load值 最少要看10-15分钟的。 80%说的是整体的一个比例。)

重点看 CPU 的使用率,单核使用率 100% , 多核 N*100%

找到高消耗CPU的进程,判断是否为业务进程

  是:那说明 机器压力大,需要升级配置或者通过集群解决。

  不是: 找到 running队列中的进程,判断是否是恶意的程序,恶意程序直接 Kill 掉,并清除相关的链接

二. 磁盘

 查看命令:  df   iostat   iotop( iotop 如果没有, yum install iotop)

检查项:   使用率,   IO队列长度

[root@python ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bf194

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM

磁盘 /dev/mapper/centos_python-root:37.6 GB, 37576769536 字节,73392128 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos_python-swap:4294 MB, 4294967296 字节,8388608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘使用率预警线: 80%

超过80%的应该加磁盘,或者清理磁盘空间

队列长度 2-3  (超过就说明  IO 不够用了)

检查那个进程占用了 IO,  是否为恶意进程

  是: 找到进程kill掉,清除对应文件

  不是:优化 IO    磁盘阵列或者上存储

[root@python ~]# df -Th
文件系统                       类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos_python-root xfs        35G   21G   15G   58% /
devtmpfs                       devtmpfs  894M     0  894M    0% /dev
tmpfs                          tmpfs     910M     0  910M    0% /dev/shm
tmpfs                          tmpfs     910M   11M  900M    2% /run
tmpfs                          tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/sda1                      xfs      1014M  286M  729M   29% /boot
tmpfs                          tmpfs     182M  4.0K  182M    1% /run/user/42
tmpfs                          tmpfs     182M   36K  182M    1% /run/user/0
/dev/sr0                       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

三. 内存

查看命令: free

查看项: 1.物理内存   2./swap(交换分区) 使用率

阈值:  物理内存 80%      /swap :5%      (swap使用时就说明物理内存不够用了。 因为数据都是由物理内存来提供的)

内存使用进程: ps

[root@python ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819        1281          81           5         456         310
Swap:          4095         790        3305
        总内存 使用的内存 自由的 共享 缓存 有效的


使用内存时: 先拿 free 然后 cache 最后走 swap
App申请内存时也是先看free 有没有,再看cache够不够, 然后去used扫描看那些空间是长时间没有用的。
然后就会将这些数据 刷到 swap 中, 将腾出来的内存交给 App使用。

used --> swap 叫换出
swap --> used 叫换入
频繁的换入/换出, 就会对性能有很大的影响。 这是不应该的。
所以 swap 被使用就报警

使用    top命令    可以查看,进程对内存 (%MEM --memory) 的使用。 发现不对的就去查一查。

四. 网络

查看命令: iftop   (iftop -i ens33   多块网卡的情况下,制定监控那块网卡)

检查项: 流入流出峰值

阈值: 总宽带的 80%

在检查时 一定要仔细啊。 不能随便 把进程就给杀了。  如果杀错了。 你老板就会杀了你。

原文地址:https://www.cnblogs.com/chengege/p/11127232.html