Linux上面查看服务器压力的一些思路

简介: Linux上面查看服务器压力的一些思路

前言

我标题写的是思路,其实也是工作一天之后坐在床上静静思考,关于linux,怎么去聊这个事情会好一些。事实上就我个人而言,linux对于一名开发来讲需求是比较直接的,其实就是学会看性能就可以了。因为真实在生产线上的时候同时还会有专业的运维同学,还有一些系统专门去让我们去看,我们需要挑关键点。

从我们日常的Window出发

其实不管是window和linux,我们其实都是会按照一样的想法去看性能的;我们平时在window用得比较多,当系统负载高的时候我们直观的感觉就是卡,然后我们会打开我们的任务管理器,看看我们的CPU,看看我们的磁盘,是不是有什么东西占用高了。其实这个思路到了linux上面也是一样的,只不过的话,linux命令行方式多一些,我们只要把window上面看性能的思路迁移到linux就可以。

我们windows是用资源管理器去看的,曲线其实很明朗就可以看到了。

我们可以按照这个思路

CPU->内存->磁盘->网络,我们按照这个思路来,应该是清晰的。

性能评判的原则

还一个需要强调的是,生产上面其实会有一个原则,一般不能等系统挂了的时候再去处理,通常来说一台机器(多核)超过60%-70%其实就算压力比较大了,超过了80%的话其实就已经负荷很高了,这个是我们用来判断的性能的参考。

命令介绍

我们其实要先知道我们的目的,再介绍命令会比较合适,正如我们想要编辑文档的时候,我们会有word和wps的介绍,我们其实可以有不止一种的方式去实现我们的这个需求。

linux下的资源监视器

top命令是最常用的,对应我们的windos下面的资源监视器,linux top命令一敲,便是下面的内容

top - 22:33:12 up 467 days, 12:44,  3 users,  load average: 2.82, 3.14, 3.33
Tasks: 468 total,   1 running, 467 sleeping,   0 stopped,   0 zombie
Cpu(s): 14.8%us,  0.9%sy,  1.4%ni, 82.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  132244968k total, 75537804k used, 56707164k free,  1201448k buffers
Swap: 33554428k total,        0k used, 33554428k free, 53700216k cached
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                             
 63276 hdfs      20   0 19.7g 8.7g  25m S 356.0  6.9 297879:19 java                                                                                                                                                
  2123 root      20   0 49960 2252 1704 S  0.7  0.0 149:44.81 syslog-ng                                                                                                                                            
  2152 nscd      20   0  945m 1736 1068 S  0.3  0.0 383:46.29 nscd                                                                                                                                                 
...... 

因为没得曲线看,我们需要晓得一下关键的字段:

load average 便是我们的系统负载情况,分别表示系统一分钟 五分钟 十五分钟的平均负载

id 全称的 idle,这个是空闲率,这个当然就是越空闲就系统压力越小,如果这三个值加起来/3 x100% 超过60% 说明负载比较高 如果超过80%就挂了!

另外top面板上面按1的时候可以切换多核的情况,可以试试。

简要面板

top命令其实信息太多了,我们其实有个迷你版本的面板

$ uptime
 22:41:54 up 467 days, 12:53,  3 users,  load average: 3.60, 3.53, 3.40

直接可以查看系统负荷情况

CPU和内存查看

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计。

$ vmstat 2 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 56691984 1201452 53722160    0    0     0     9    0    0  5  1 94  0  0
 1  0      0 56692212 1201452 53722164    0    0     0     0 2539 1077  6  0 94  0  0
 2  0      0 56692668 1201452 53722168    0    0     0    24 6199 8175 21  0 79  0  0

2是指2秒来一次,3的统计3下的意思,需要关注几个项目

r其实就是runing的意思,是指线程running

b是block的意思,线程block,这肯定不好,越少越好

us是user是的意思,用户使用cpu

sy是system的意思,系统使用cpu

us和sy两个值加起来超过80%,系统压力大,需要处理了

剩下可以看到内存和其他,稍微看得少些。

内存查看

free -m

free -m
             total       used       free     shared    buffers     cached
Mem:        129145      73937      55207          1       1173      52465
-/+ buffers/cache:      20298     108846
Swap:        32767          0      32767

这条命令就是查看内存,因为四舍五入,-m的兆的意思,也可以free -g,但是会被舍去很多内存,一般的m

磁盘查看

磁盘这个好说,就是看容量,这个就是满了就是100%,很容易看

$ df -ah
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       518G  175G  317G  36% /
proc               0     0     0    - /proc
sysfs              0     0     0    - /sys
devpts             0     0     0    - /dev/pts
tmpfs            63G     0   63G   0% /dev/shm
/dev/sda1       190M   27M  153M  15% /boot
none               0     0     0    - /proc/sys/fs/binfmt_misc

磁盘一个查看是需要看读写情况

$ iostat -xdk 2 3
Linux 2.6.32-504.23.4.el6.x86_64     03/16/2020      _x86_64_        (24 CPU)
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00    49.04    0.01    5.48     0.23   217.89    79.48     0.01    2.29   0.18   0.10
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
  • rrqm/s: 每秒进行 merge 的读操作数目
  • wrqm/s:每秒进行 merge 的写操作数目
  • r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
  • w/s:每秒完成的写 I/O 设备次数。即 delta(wio)/s
  • rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节
  • avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)
  • avgqu-sz:平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)
  • await:平均每次设备I/O操作的等待时间 (毫秒)
  • svctm: 平均每次设备I/O操作的服务时间 (毫秒)
  • %util:一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
    如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈

网络查看

其实可想而知想象得到,我们的网络应该是xxstat这种形式吧,其实还真是。

网络的查看是ifstat,不过这个软件有时候不带,需要自己安装

wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz
 tar -zxvf ifstat-1.1.tar.gz 
 cd ifstat-1.1
 ./configure
 make 
 make install

敲命令ifstat就行,这个显示比较简单,网卡和上传下载的速度

eth0                eth1               bond0       
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.21      0.06      0.00      0.06      0.21
    0.00      0.00      0.06      0.15      0.06      0.15
    0.00      0.15      0.06      0.00      0.06      0.15
    0.00      0.00      0.06      0.15      0.06      0.15
    1.24     15.24      0.06     17.02      1.29     32.25
    0.14      1.15      0.06      0.20      0.20      1.35

总结

从我们window是迁移的思路是比较清晰的,按照设备+stat这种规律的命令也是比较容易推导出来的。

目录
相关文章
|
12天前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
12天前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
2月前
|
监控 Linux Shell
|
2月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
55 5
Linux系统之安装Ward服务器监控工具
|
20天前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
44 7
|
1月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
22天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
25天前
|
缓存 Unix Linux
服务器linux!!!
本文介绍了计算机的演变历史、硬件基础知识及服务器相关知识。从电子管时代的ENIAC到冯-诺伊曼架构,再到现代计算机系统组成,详细讲解了计算机的发展历程。此外,文章还介绍了服务器的分类、品牌、硬件组成以及IDC机房的上架流程,为读者提供了全面的技术背景知识。
39 0
服务器linux!!!
|
27天前
|
人工智能 安全 Linux
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
149 3