Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

这篇具有很好参考价值的文章主要介绍了Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一般我们都知道TOP命令可以加载服务器的负载详情,但界面不太友好。因此用到htop

Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

我们开发的软件服务需要在服务器上运行,所以服务器性能代表了软件的性能上限,因此服务器性能调优是个十分重要的环节,然而大部分同学对服务器性能调优关注的较少,今天从3个部分对服务器性能调优进行介绍,分别是:服务器配置选择,服务器负载分析,服务器内核参数调优。

服务器配置选择

服务器一般是由CPU、内存、磁盘和网卡组成,因此选择服务器配置就是选择CPU核数、内存大小、磁盘大小及类型、网络带宽。但是,服务器配置的选择是很难标准化的,也就是说很难推断出“一台需要达到1000TPS的后端服务器”的配置应该是什么样的。因为软件的最终运行性能与软件的实现方式是紧密相关的,即使是同一个后端应用程序中的两个接口,由于具体功能的差别,性能也会有所差别。

因此,服务器配置的选择应该基于具体的测试结果。一开始可以选用配置较低的服务器做调优和测试,并以该服务器的测试结果作为选择服务器的依据。

以一个订单业务为例,经过测试后,一台配置为4核 CPU 、16GB内存、10Mbps带宽、50GB机械磁盘的服务器的测试结果为:支持50并发量和300TPS吞吐量(增大并发量后会出现超时报错)。而在压力测试过程中, CPU 的使用率接近75%,内存使用率在 50%以下,带宽使用率在50%以下,除去日志以外无磁盘操作。

因此可以认为,一台配置为4核 CPU ( CPU 使用率需要在75%以下)、8GB内存(内存使用率可以接近100%)、 5Mbps 带宽(带宽使用率可以接近100%)的服务器,可以满足订单接口支持50并发量、300TPS吞吐量的压力。

如果需要达到200并发数、2400TPS吞吐量的目标的话,则需要8台配置为4核 CPU 、8GB内存、5Mbps带宽的服务器,或者1台配置为32核 CPU 、64GB内存、40Mbps带宽的服务器。当然,最终的服务器配置还是需要通过测试来验证。

注意:在以上订单接口的例子中,后端服务器和数据库等服务器需要一起调试,避免后端服务器性能过剩,而数据库等服务器性能不足的情况发生。另外,以上选择服务器配置的方法不一定适用于所有场景,请斟酌参考。

服务器负载分析

在性能调优时,需要先对服务器负载进行分析,通常而言,我们主要分析CPU使用率、内存使用率、磁盘I/O,服务器负载和带宽使用情况。

CPU使用率

CPU使用率反应的是CPU的忙碌情况。当CPU达到100%时,部分进程会进入等待状态,CPU暂时不会对其进行处理。在实际情况下,为了应对一下突发性的请求压力,服务器CPU使用率一般需要在75%以下。如果一台服务器的CPU使用率多次高于75%,这时候就考虑增加新的服务器。

监控CPU使用率我推荐大家使用htop工具,可以非常直观看到CPU使用率、内存使用率、及负载等信息。

使用htop查看CPU负载

首先我们需要安装htop,以centos为例,安装命令如下:

安装htop

yum install -y epel-release

yum install -y htop

Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

cpu负载

如上图所示,这是一个4核CPU服务器,在截图的时候其中3核CPU使用率都超过了75%,再观察一会发现所有CPU的使用率都在85%左右徘徊,说明CPU负载很高了,需要考虑增加新的服务器。

内存使用率

内存使用率反应的是内存的使用情况。内存用于存放程序的代码及数据,一般分为物理内存和虚拟内存,其中物理内存指的是服务器的内存,而虚拟内存指的是硬盘的一块空间。当物理内存使用率达到100%时将会使用虚拟内存。需要注意的是,虚拟内存的读写速度远远低于物理内存,如果程序被放在了虚拟内存执行,那么程序的执行效率会变得很低。

一般而言,服务器的物理内存应该保持在80%以下,虚拟内存使用率保持在0%。

服务器内存使用情况还是可以通过hop工具进行查看

内存使用率

上面显示了服务器的内存使用情况:总内存16G,使用了10G左右,内存使用率62%,可以继续使用,同时关闭了Swap虚拟内存。

在下​​MEM%​​栏中显示了单个进程的内存使用率。

磁盘I/O

磁盘I/O指的是磁盘的读写,在软件系统中,日志、文件操作、数据库操作都会造成磁盘读写压力,其中又以数据库操作为甚,在高并发情况下往往数据库会首先成为系统的瓶颈。

磁盘监控我推荐大家使用iostat工具,可以很方便查看磁盘的使用情况。

使用iostat查看磁盘I/O

首先我们需要安装​​iostat​​,以centos为例,安装命令如下:

yum install sysstat -y

# 查看磁盘总体读写情况, 1代表每1秒读取一次数据
iostat -x 1

Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

磁盘IO

输入​​iostat​​​命令后,磁盘总体读写情况如上所示。磁盘负载主要关注2个指标:​​%idle​​​,​​%util​

  • ​%idle​​:表示CPU除去等待磁盘I/O以外的空闲时间百分比,这个指标应该要保证在70%以上
  • ​%util​​:该设备用于I/O操作的时间百分比,这个指标需要保证在70%以下,当到达100%时表示已经满负载。为了降低磁盘负载,可以采用性能更高的磁盘(OSD,PCIE)或者降低磁盘的操作频率(异步写、合并写)

平均负载

平均负载指的是单位时间内平均的活跃进程数,是一个表示服务器负载的指标。一般情况下需要保证平均负载的值小于当前服务器的CPU核数。

同样的,查看服务器平均负载我们也可以使用​​htop​​命令

在这里我们主要关注​​Load average​​指标,上图有3个数字,分别代表1分钟,5分钟,15分钟的平均负载。

一般情况下服务器的平均负载需要小于当前服务器的CPU核数,为了应对突发状况,服务器的平均负载应该在75%即3 以下,很显然,上图这台服务器平均负载超过了75%,需要考虑提升性能了。

网络使用情况

网络使用情况也是监控的重要指标。当带宽不足时会大大增加请求的响应时间。为了防止突发性并发压力,应该保证服务器的带宽使用率在80%以上。这里需要注意的是,物理网卡限制了服务器所能使用的最大宽带。

查看网络使用情况我推荐使用​​nload​​工具。

使用nload查看网络

首先需要安装nload,以centos为例

yum install nload -y

 安装完成后我们直接运行​​nload​

nload

Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

输入​​nload​​命令后,网络使用情况如上图所示。其中,网络使用情况分为流入网卡的数据与流出网卡的数据。流入网卡的对应下行带宽的网速,流出网卡的数据对应上行带宽的网速。如果 “当前网速” 持续接近 “最大网速” 时,代表带宽使用率已经接近100%。

指标说明:

  • Curr:当前网速
  • Avg:平均网速
  • Min:最小网速
  • Max:最大网速
  • Ttl:总流量

如还不满意可用iftop

使用iftop命令,
CentOS系统下使用yum install iftop -y进行安装(非常好用其他的真的一般)**

iftop -P (可动态展示所有有流量的连接,包含端口解析)
-i:指定需要监测的网卡
-n:将输出的主机信息都通过IP显示,不进行DNS反向解析
-B:将输出以bytes为单位显示网卡流量,默认是bits
-p:以混杂模式运行iftop,此时iftop可以作为网络嗅探器使用
-N:只显示连接端口号,不显示端口对应的服务名称
-P:显示主机以及端口信息,这个参数非常有用
-F:显示特定网段的网卡进出流量
-m:设置iftop输出界面中最上面的流量刻度最大值,流量刻度分五个大段显示
Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

 界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
#"TX":从网卡发出的流量
#"RX":网卡接收流量
#"TOTAL":网卡发送接收总流量
#"cum":iftop开始运行到当前时间点的总流量
#"peak":网卡流量峰值
#"rates":分别表示最近2s、10s、40s 的平均流量

iftop交互式参数:

参数      含义
P        暂停/继续 (Display unpaused/paused )
h        帮助/显示(help / Display)
b        平均流量刻度条开关 (Bars on/off)
B        2s、10s、40s内的平均流量 (Bars show 2s/10s/40s average)
T        显示/隐藏每个连接的总流量( show / hide cumulative totals)
j/k      上移/下滚(通vi hjkl 左上下右)
l        过滤 (screen filter > IP、主机名或端口支持模糊查询  ctrl+删除键回退)
L        对数尺度、计算尺;  直线标度、线性标尺  (logarithmic scale && linear scale)==加个进度条比例不同
q        退出(quit)
n        DNS解析开关(DNS resolution off/on)主要看hosts 文件有无
s/d      显示源/目的主机信息  show/hide  source/dest host
S/D      显示源/目的端口信息  port display  dest/source或on
t        仅显示接收流量。received traffic only , 仅显示发送流量 sent traffic only,接收发送同时显示  two line per host 接收发送合并显示 one line per host
N        端口号及对应服务名称切换,只识别通用端口修改后不显示服务。port resolution on/off
p        全量显示/关闭端口信息   (port display off/on)
1/2/3    根据近2 秒、10 秒、40 秒的平均网络流量排序  sort by col 1/2/3
<        根据源ip/主机名排序 (sort by  source)
>        根据目的地址ip或主机名排序 (sort by dest)
o        冻结当前连接显示  order frozen/unfrozen

CPU温度

 lm_sensors是一款linux的硬件监控的软件,可以帮助我们来监控主板,CPU的工作电压,风扇转速、温度等数据。这些数据我们通常在主板的 BIOS也可以看到。当我们可以在机器运行的时候通过lm_sensors随时来监测着CPU的温度变化,可以预防和保护因为CPU过热而会烧掉。

三、sensors命令安装及使用
1、yum安装lm_sensors
yum install -y lm_sensors

2、查看sensors版本

[root@s146 opt]# sensors -v
sensors version 3.4.0 with libsensors version 3.4.0

3、传感器探测

Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

 

 

Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

五、QA

1、虚拟机执行sensors命令报错No sensors found!

 Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

 

报错原因:因为找不到传感器

解决方案:可以使用sensors-detect命令探测,如果是虚拟机不存在直接连接传感器,无法查看温度信息。

2、kmod-coretemp安装
关于kmod-coretemp的安全要求,实际上如果是centos7,我们并不需要安装此模块,因为操作系统已经安装了kmod-20-28.el7.x86_64、kmod-libs-20-23.el7.x86_64。Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等

 #centos6安装kmod-coretemp软件包
#wget http://www.pperry.f2s.com/linux/coretemp/kmod-coretemp-1.1-2.el5.x86_64.rpm
#rpm -ivh kmod-coretemp-1.1-2.el5.x86_64.rpm
 

服务器内核参数调优

光有强大的物理性能是不够的,还需要对内核参数进行调优,这样才能在高并发压力下充分体现服务器应有的性能。当然,并不是所有的服务器都需要做高并发性能调优,一般来说,只需要对要处理高并发请求的服务器进行内核参数调优即可,常见的包括:前端服务器,后端服务器,数据库服务器。

服务器常见的调优参数主要有两个:单个进程最大打开文件数 和 TCP相关设置。

单个进程最大打开文件数

修改单个文件最大打开文件数,只需要编辑​​/etc/security/limits.conf​​文件,在文件末尾加上以下四句

* soft  nofile  65535
* hard  nofile  65535
* soft  nproc 65535
* hard  nproc 65535

 其中​​*​​ 代表所有用户,65536代表修改的值,重启后生效。

TCP相关设置

修改TCP相关参数,可以优化TCP高并发通信,编辑​​/etc/sysctl.conf​​文件,添加以下内容文章来源地址https://www.toymoban.com/news/detail-468682.html

# 为防止洪水,高并发系统需要将此项关闭
net.ipv4.tcp_syncookies = 0

# 开启TCP连接重用,允许处理TIME-WAIT状态的连接重新用于新的TCP连接
net.ipv4.tcp_tw_reuse = 1

# 开启快速回收TCP连接中处于TIME-WAIT状态的连接
net.ipv4.tcp_tw_recycle = 1

#修改超时时间( s ),该值表示如果连接由本端关闭,则连接处于 FIN-WAIT-2状态的时间为 
net.ipv4.tcp_fin_timeout = 30

#当 keepalive(长连接)启用的时候,TCP发送 keepalive 消息(探测包)的时间间隔( s ),默认为2个小时
net.ipv4.tcp_keepalive_time =1200

#服务器对外连接的端口范围,影响该服务器与其他服务器的连接数
net.ipv4.ip_local_port_range =102465535

#SYN队列的长度,可以容纳更多等待连接的网络连接数,默认为1024 
net.ipv4.tcp_max_syn_backlog = 65535

#保持 TIME_WAIT 状态连接的最大数量,如果超过此值,TIME_WAIT 将立刻被清除并打印警告信息,默认为180000
net.ipv4.tcp_max_tw_buckets =5000

#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog =65535

# TCP最大连接数
net.core.somaxconn = 65535

#预留用于接收缓冲的内存默认值(字节) 
net.core.rmem_default = 8388608

#预留用于接收缓冲的内存最大值(字节) 
net.core.rmem_max = 16777216

#预留用于发送缓冲的内存默认值(字节) 
net.core.wmem_default = 8388608

#预留用于发送缓冲的内存最大值(字节) 
net.core.wmem_maX = 16777216

#避免时间戳异常
net.ipv4.tcp_timestamps = 0

#系统中最多有多少个 TCP 套接字不被关联到任何一个用户文件句柄上,如果超过这个数字,连接将即刻被复位并打印警告信息,这个限制仅仅是为了防止简单的DoS 攻击
net.ipv4.tcp_max_orphans =3276800

到了这里,关于Linux CentOs7 监控CPU 内存 硬盘IO读写,网络负载,CPU温度等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 查询Linux cpu、内存、硬盘相关信息

    1、查询详情: cat /proc/cpuinfo 这个命令输出了太多的冗余信息不方便查看, 下面介绍的命令以该Linux输出的CPU信息为例, 可以很方便的知道当前系统CPU的特定信息。 2.查看物理CPU的个数 cat /proc/cpuinfo | grep \\\"physical id\\\" | sort | uniq | wc -l 输出结果: 2 表示Linux服务器上面实际安装了

    2024年02月09日
    浏览(38)
  • Apache JMeter 3.1压力测试监控服务器数据(cpu、内存、磁盘io等)

    监控服务器CPU、内存、磁盘、网络等相关资源需要使用3.1版本并使用以下插件 客户端:JMeterPlugins-Standard和JMeterPlugins-Extras 服务端:ServerAgent 官网链接:https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.1.zip 解压安装包,进入 bin 目录,点击 jmeter.bat 启动 Jmeter 1.1 添加线程组 线

    2024年01月18日
    浏览(50)
  • Linux查看GPU显卡/CPU内存/硬盘信息

    nvidia-smi nvidia-smi(显示一次当前GPU占用情况) nvidia-smi -l(每秒刷新一次并显示) watch -n 5 nvidia-smi (其中,5表示每隔6秒刷新一次终端的显示结果) 表头释义: Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出

    2024年02月09日
    浏览(48)
  • 【linux】Ubuntu 查询CPU、GPU、硬盘、内存等硬件信息

    硬件:通用PC /Jetson Xavier NX 套件 系统:Ubuntu 20.04 软件 : 在Ubuntu系统中,可以通过在终端执行以下命令来获取CPU的名称: 如果需要精准查找CPU名称 、核心数、厂商可以使用 如果需要获取CPU使用率,使用mpstat命令,它是sysstat包的一部分。首先,确保安装了sysstat包。如果没有安

    2024年04月28日
    浏览(55)
  • 命令查看Linux服务器内存、CPU、显卡、硬盘使用情况

    使用命令:free -m 大致结果类似下图: 内存占用情况 参数解释: Mem行(单位均为M): total:内存总数 used:已使用内存数 free:空闲内存数 shared:当前废弃不用 buffers:缓存内存数(Buffer) cached:缓存内舒数(Page) (-/+ buffers/cache)行: (-buffers/cache): 真正使用的内存数,指

    2024年02月04日
    浏览(70)
  • Linux命令查看CPU、内存、IO使用情况简单介绍

    物理cpu就是计算机上实际安装的cpu,物理cpu数就是主板上实际插入的CPU数量。 在Linux上查看/proc/cpuinfo,其中的physical id就是每个物理cpu的id,有几个不同的physical id就有几个物理cpu。 每颗物理CPU可以有1个或者多个物理内核,通常每颗物理CPU的内核数都是固定的, 单核CPU就是有

    2024年02月10日
    浏览(50)
  • Jmeter性能指标监控:CPU、内存、磁盘、网络

    jmeter版本:jmeter5.1.1 插件资源(可自己官网下载或从以下网盘中获取): 链接:https://pan.baidu.com/s/1vBr85BLuhhENrnWrFTDGhg 提取码:ywr4 获取插件的最简单方法是安装Plugins Manager,然后只需在Jmeter中单击复选框即可安装任何其他插件。 1)下载 jmeter-plugins-manager-1.3.jar文件 下载地址:

    2024年02月08日
    浏览(39)
  • linux下压力测试工具stress(cpu,内存,io)

    stress-1.0.2-1.el7.rf.x86_64.rpm下载地址,centos7适用: fr2.rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/stress-1.0.2-1.el7.rf.x86_64.rpm 安装: rpm -Uivh stress-1.0.2-1.el7.rf.x86_64.rpm stress-ng源码下载: https://kernel.ubuntu.com/~cking/tarballs/stress-ng/ 编译: make 安装: sudo make install yum安装 yum install -y epel-rel

    2024年01月17日
    浏览(38)
  • Linux中该如何查看当前CPU、内存、硬盘占用情况,如何判断当前服务器负载情况

    要查看当前 Linux 系统的 CPU、内存、硬盘占用情况,可以使用以下命令: 查看 CPU 占用情况: 该命令会显示当前系统进程的 CPU 占用情况,以及每个进程占用的 CPU 百分比和内存使用情况等信息。 查看内存占用情况: 该命令会显示当前系统的内存总量、已使用的内存量、空闲

    2024年02月11日
    浏览(69)
  • (mac)Prometheus监控之Node_exporter(CPU、内存、磁盘、网络等)

    1.启动 Prometheus 普罗米修斯  浏览器访问  http://localhost:9090/targets  2.启动Node_exporter  访问: http://localhost:9100    3.启动grafana 访问 http://localhost: 3000  4.添加数据源 5.查看Dashboard   普罗米修斯是后端数据监控平台,通过Node_exporter收集数据,Grafana将数据用图形的方式展示出来

    2024年04月26日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包