|
|
|
@ -772,6 +772,40 @@ awk'{print $8}' 2017-05-22-access_log|egrep '301|302'| wc -l
|
|
|
|
|
|
|
|
|
|
![img](images/DevOps/1657486-20200110163906854-1971599861.png)
|
|
|
|
|
|
|
|
|
|
监控内存、磁盘和CPU的脚本:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
# 监控内存:awk 'NR==2’ 表示从第2行开始提取数据
|
|
|
|
|
free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }'
|
|
|
|
|
# 监控磁盘:df -h | awk '$NF=="/" 表示将转到包含字符/的那一行
|
|
|
|
|
df -h | awk '$NF=="/"{printf "%s\t\t", $5}'
|
|
|
|
|
# 监控 CPU:top -bn1命令将只执行一次top命令(n1表示1次迭代);grep load将输出包含字符串load的行。$(NF-2)将计算该行上的字段数并减 2
|
|
|
|
|
top -bn1 | grep load | awk '{printf "%.2f%%\t\t\n", $(NF-2)}'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
创建脚本:(运行一个小时,每次休眠5秒)
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
#! /bin/bash
|
|
|
|
|
printf "Memory\t\tDisk\t\tCPU\n"
|
|
|
|
|
end=$((SECONDS+3600))
|
|
|
|
|
while [ $SECONDS -lt $end ]; do
|
|
|
|
|
MEMORY=$(free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }')
|
|
|
|
|
DISK=$(df -h | awk '$NF=="/"{printf "%s\t\t", $5}')
|
|
|
|
|
CPU=$(top -bn1 | grep load | awk '{printf "%.2f%%\t\t\n", $(NF-2)}')
|
|
|
|
|
echo "$MEMORY$DISK$CPU"
|
|
|
|
|
sleep 5
|
|
|
|
|
done
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
执行命令:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
[root@localhost tmp]# ./stats.sh >> log.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## CPU
|
|
|
|
|
|
|
|
|
|
从 CPU 的角度来说,主要的性能指标就是 **CPU 的使用率**、**上下文切换**以及 **CPU 缓存的命中率**等。
|
|
|
|
|