帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  没有宝塔怎么知道自己服务器状态?

没有宝塔怎么知道自己服务器状态?

2020-11-21 14:07:20 2504

CPU 监控命令: w、 top、 htop、 glances


%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

us 用户态: 跟用户的操作有关 35%

sy 系统态: 跟内核的处理有关 60%

id CPU 空闲:


内存监控命令: free


[root@m01 ~]# free -h

              total        used        free      shared  buff/cache   available

Mem:           977M        105M        724M        6.6M        148M        729M

Swap:          1.0G          0B        1.0G



磁盘监控命令: df、 iotop


Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 0.80 25.32 33.36 221034 291193

设备名 每秒传输次数 每秒读大小 每秒写大小 读的总大小 写的总大小



网络监控命令: ifconfig、 route、 glances、 iftop、 nethogs、 netstat


单位换算

Mbps 100Mbps/8

MB 12MB

iftop 中间的<= =>这两个左右箭头,表示的是流量的方向。

TX:发送流量、 RX:接收流量、 TOTAL:总流量

#查看 TCP11 中状态

netstat -an|grep ESTABLISHED

netstat -rn # 查看路由信息

netstat -lntup



2.随着时间的推移,用户不断的增多,服务随时可能扛不住会被 oom(out of memory),当系统内存不足的时候,会

 触发 oom

 1.当系统内存不足的时候就会大量使用 swap

 2.当系统大量使用 swap 的时候,系统会特别卡

 注意: 有时可能内存还有剩余 300Mb-500Mb,但会发现 swap 依然被使用



[root@ZabbixServer ~]# dd if=/dev/zero of=/dev/null bs=800M

[root@ZabbixServer ~]# tail -f /var/log/messages

Out of memory: Kill process 2227 (dd) score 778 or sacrifice child

Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB, file-rss:0kB



3.那单机时代,如何使用 shell 脚本来实现服务器的监控

 需求: 每隔 1 分钟监控一次内存,当你的可用内存低于 100m,发邮件报警,要求显示剩余内存

 1.怎么获取内存可用的值 free -m|awk '/^Mem/{print $NF}'

 2.获取到内存可用的值如何和设定的阈值进行比较

 3.比较如果大于 100m 则不处理,如果小于 100 则报警

 4.如何每隔 1 分钟执行一次


[root@ZabbixServer ~]# cat free.sh

#!/usr/bin/bash

HostName=$(hostname)_$(hostname -i)

Date=$(date +%F)

while true;do

Free=$(free -m|awk '/^Mem/{print $NF}')

if [ $Free -le 100 ];then

echo "$Date: $HostName Mem Is < ${Free}MB"

fi

sleep 5

done


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: