先赞后看,养成习惯!!!❤️ ❤️ ❤️
码字不易,如果喜欢可以关注我哦!
如果本篇文章对你有所启发,欢迎访问我的个人博客
命令
服务器相关
5个常用命令
top
Top命令不仅显示了当前内核服务的任务,还显示了许多关于主机状态的统计数据,默认情况下,它每隔5秒自动更新一次显示的数据(这个时间间隔是可以配置的),通过top命令,我们可以得知几个结果,如:当前正常运行时间,系统负载,进程数量和内存使用率,此外,这个命令也显示了那些使用最多CPU时间的进程(包括每个进程的各种信息,如运行用户,执行的命令等)。
vmstat
Vmstat命令提供当前CPU、IO、进程和内存使用率的快照,它和top命令类似,自动更新数据,如:
$ vmstat 10
iostat
Iostat命令(在Ubuntu,Red Hat/Fedora上包含在sysstat软件包中)提供三个报告:CPU利用率、设备利用率和网络文件系统利用率,不加任何参数运行时,iostat将显示这三个报告,使用-c,-d和-h参数可以分别独立显示这三个报告。
free
Free命令显示主内存和交换空间的内存统计数据,指定-t参数可以显示总内存数量,指定-b参数可以按字节为单位进行显示,使用-m则以兆为单位显示,默认情况下是以千字节为单位的。
Free命令也可以使用-s参数加一个延迟时间(单位:秒)连续运行,如:
$ free -s 5
sar
Sar命令收集,查看和记录性能数据,这个命令比前面几个命令历史更悠久,它可以收集和显示较长周期的数据。
其他
- ps:显示正在运行的进程。
- df:显示磁盘空间使用情况。
- du:显示指定目录或文件的磁盘空间使用情况。
- ping:测试与目标主机的网络连接状态。
- nslookup:查询 DNS 记录。
- dig:查询 DNS 信息。
- curl:在终端中以命令行方式访问网站。
- traceroute:检测从源到目的地途中经过的路由器数量。
- netstat:显示本机所有的网络连接状况。
- ifconfig:查询和设置网络设备。
- route:查询和设置路由表。
- tcpdump:抓取网络封包。
- iptables:网络包过滤与防火墙。
- ssh:远程连接服务器。
网络相关
- netstat -t:仅显示TCP连接。
- netstat -u:仅显示UDP连接。
- netstat -l:显示所有正在监听的端口。
- netstat -p:显示与每个连接关联的进程ID和进程名称。
- netstat -a:显示所有的连接,包括正在监听的和正在建立或关闭的。
- netstat -n:显示IP地址和端口号,而不进行名称解析。
- netstat -r:显示路由表。
- netstat -s:显示TCP、UDP、ICMP和IP数据包的统计信息。
- netstat -c:连续输出结果,类似于top命令。
- netstat -i:显示网络接口的统计信息,如收发数据包、错误信息等。
文件相关
- ls:列出当前目录下的文件和文件夹。
- cd:切换路径。
- mkdir:创建目录。
- rm:删除文件或目录。
- cp:复制文件或目录。
- mv:移动文件或目录。
- grep:搜索文件中指定的字符串。
- tail:显示文件的末尾内容。
- head:显示文件的头部内容。
- cat:显示文件的全部内容。
- chmod:修改文件或目录的权限。
- chown:修改文件或目录的所有者。
工具插件
CPU使用率(htop)
可以非常直观看到CPU使用率、内存使用率、及负载等信息。
CPU使用率反应的是CPU的忙碌情况。当CPU达到100%时,部分进程会进入等待状态,CPU暂时不会对其进行处理。在实际情况下,为了应对一下突发性的请求压力,服务器CPU使用率一般需要在75%以下。如果一台服务器的CPU使用率多次高于75%,这时候就考虑增加新的服务器。
使用htop查看CPU负载
安装htop命令如下:
yum install htop -y
安装完成后通过htop
命令观察CPU负载
htop
内存使用率(htop)
内存使用率反应的是内存的使用情况。内存用于存放程序的代码及数据,一般分为物理内存和虚拟内存,其中物理内存指的是服务器的内存,而虚拟内存指的是硬盘的一块空间。当物理内存使用率达到100%时将会使用虚拟内存。需要注意的是,虚拟内存的读写速度远远低于物理内存,如果程序被放在了虚拟内存执行,那么程序的执行效率会变得很低。
一般而言,服务器的物理内存应该保持在80%以下,虚拟内存使用率保持在0%。
使用htop命令查看
磁盘io(htop)
磁盘I/O指的是磁盘的读写,在软件系统中,日志、文件操作、数据库操作都会造成磁盘读写压力,其中又以数据库操作为甚,在高并发情况下往往数据库会首先成为系统的瓶颈。
磁盘监控我推荐大家使用iostat工具,可以很方便查看磁盘的使用情况。
使用iostat查看磁盘I/O
安装iostat
命令如下:
yum install sysstat -y
安装完成后通过iostat
命令磁盘使用情况。
# 查看磁盘总体读写情况, 1代表每1秒读取一次数据
iostat -x 1
输入iostat
命令后,磁盘总体读写情况如上所示。磁盘负载主要关注2个指标:%idle
,%util
%idle
:表示CPU除去等待磁盘I/O以外的空闲时间百分比,这个指标应该要保证在70%以上%util
:该设备用于I/O操作的时间百分比,这个指标需要保证在70%以下,当到达100%时表示已经满负载。为了降低磁盘负载,可以采用性能更高的磁盘(OSD,PCIE)或者降低磁盘的操作频率(异步写、合并写)
平均负载(htop)
平均负载指的是单位时间内平均的活跃进程数,是一个表示服务器负载的指标。一般情况下需要保证平均负载的值小于当前服务器的CPU核数。
一般情况下服务器的平均负载需要小于当前服务器的CPU核数,为了应对突发状况,服务器的平均负载应该在75%即3 以下,如果服务器平均负载超过了75%,需要考虑提升服务器性能(升降配)。
使用htop命令查看
网络使用情况(nload
)
网络使用情况也是监控的重要指标。当带宽不足时会大大增加请求的响应时间。为了防止突发性并发压力,应该保证服务器的带宽使用率在80%以上。这里需要注意的是,物理网卡限制了服务器所能使用的最大宽带。
查看网络使用情况我推荐使用nload
工具。
使用nload查看网络
首先需要安装nload,以centos为例
yum install nload -y
安装完成后我们直接运行nload
nload
输入nload
命令后,网络使用情况如图。其中,网络使用情况分为流入网卡的数据与流出网卡的数据。流入网卡的对应下行带宽的网速,流出网卡的数据对应上行带宽的网速。如果 “当前网速” 持续接近 “最大网速” 时,代表带宽使用率已经接近100%。
指标说明:
- Curr:当前网速
- Avg:平均网速
- Min:最小网速
- Max:最大网速
- Ttl:总流量
参考文章