tload(terminal load)命令是一个简单的图形化工具,用于在终端中以ASCII字符绘制的图形显示系统负载平均值的变化。它以简单直观的方式展示系统负载趋势,适合快速查看系统负载状态。
tload [选项] [终端设备]
| 选项 | 说明 |
|---|---|
-s 刻度 |
设置图形的垂直刻度(每行的负载值) |
-d 间隔 |
设置数据刷新的间隔时间(秒) |
-V |
显示版本信息 |
--help |
显示帮助信息 |
# 在终端中显示负载图形
tload
输出示例:
0.40, 0.30, 0.25 load average
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---+------------------------------------------------------------------------------
|
# 每2秒刷新一次
tload -d 2
# 每5秒刷新一次
tload -d 5
# 设置每行代表0.5的负载值
tload -s 0.5
# 设置每行代表1.0的负载值
tload -s 1.0
# 设置每行代表0.1的负载值(更敏感)
tload -s 0.1
# 每3秒刷新,每行代表0.2负载值
tload -d 3 -s 0.2
# 每1秒刷新,每行代表1.0负载值
tload -d 1 -s 1.0
# 在特定终端显示负载图形
tload /dev/pts/0
# 查找当前终端
echo $TERM
tty
# 在新终端中启动tload
xterm -e tload &
gnome-terminal -e "tload -d 2"
# 同时显示uptime和tload进行对比
echo "负载平均值:" && uptime && echo -e "\n图形化显示:" && tload
# 脚本示例:同时监控多个指标
#!/bin/bash
echo "=== 系统负载监控 ==="
echo "时间: $(date)"
echo "负载: $(uptime | awk -F'load average:' '{print $2}')"
echo "CPU核心数: $(nproc)"
echo "图形化显示:"
tload -d 2 -s 0.5
#!/bin/bash
# 系统负载监控脚本
# 使用tload实时监控系统负载
echo "系统负载监控启动 - 按Ctrl+C退出"
echo "当前时间: $(date)"
echo "CPU核心数: $(nproc)"
echo ""
# 显示初始负载信息
uptime
echo -e "\n负载变化趋势 (刷新间隔: 2秒):"
tload -d 2 -s 0.5
#!/bin/bash
# 在负载测试期间监控系统负载
echo "开始负载测试监控..."
echo "测试时间: 300秒"
echo "监控刷新间隔: 1秒"
# 在新的终端窗口中启动tload
gnome-terminal --title="系统负载监控" -- bash -c "tload -d 1 -s 0.3; exec bash" &
# 执行负载测试
echo "执行负载测试..."
for i in {1..100}; do
dd if=/dev/zero of=/dev/null bs=1M count=1000 &
done
# 等待测试完成
sleep 300
# 清理进程
echo "测试完成,清理进程..."
pkill -f "dd if=/dev/zero"
#!/bin/bash
# 简单的服务器监控面板
while true; do
clear
echo "========================================="
echo " 服务器负载监控面板"
echo " 时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "========================================="
echo ""
# 显示系统信息
echo "系统信息:"
echo "主机名: $(hostname)"
echo "运行时间: $(uptime -p)"
echo "用户数: $(who | wc -l)"
echo ""
# 显示负载平均值
echo "负载平均值:"
uptime | awk -F'load average:' '{print $2}'
echo ""
# 显示tload图形
echo "负载趋势图 (最近变化):"
timeout 2 tload -d 1 -s 0.5 2>/dev/null || echo "图形显示失败"
echo ""
echo "其他资源:"
echo "CPU使用率: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}')%"
echo "内存使用: $(free -m | awk 'NR==2{printf "%.1f%%", $3*100/$2}')"
sleep 5
done
负载平均值是衡量系统工作量的指标,表示系统中可运行和不可中断进程的平均数量:
# 查看负载平均值
uptime
# 输出: 12:34:56 up 10 days, 1:23, 1 user, load average: 0.50, 0.75, 1.00
# 三个数字的含义:
# 1.00, 0.75, 0.50
# ↑ ↑ ↑
# 15分钟 5分钟 1分钟 负载平均值
| 负载范围 | 状态说明 | 建议操作 |
|---|---|---|
| 0.00 - 0.70 | 系统空闲或轻度使用 | 正常状态,无需操作 |
| 0.70 - 1.00 | 系统使用适中 | 监控趋势,关注变化 |
| 1.00 - 2.00 | 系统繁忙 | 分析原因,考虑优化 |
| 2.00+ | 系统过载 | 立即调查,采取措施 |
| > CPU核心数 | 系统严重过载 | 紧急处理,可能需要增加资源 |
#!/bin/bash
# 计算基于CPU核心数的理想负载范围
CPU_CORES=$(nproc)
IDEAL_MAX=$(echo "$CPU_CORES * 0.7" | bc -l)
echo "系统CPU核心数: $CPU_CORES"
echo "理想负载最大值(70%利用率): $IDEAL_MAX"
echo ""
echo "当前负载状态:"
LOAD_1=$(uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}')
echo "1分钟负载: $LOAD_1"
if (( $(echo "$LOAD_1 > $IDEAL_MAX" | bc -l) )); then
echo "状态: ⚠️ 系统负载偏高"
else
echo "状态: ✅ 系统负载正常"
fi
| 命令 | 功能 | 特点 | 适用场景 |
|---|---|---|---|
tload |
终端图形化负载显示 | 简单直观、ASCII图形、轻量级 | 快速查看负载趋势 |
uptime |
显示系统运行时间和负载 | 数字显示、基本信息 | 查看具体数值 |
top |
实时进程监控 | 详细信息、交互式 | 全面系统监控 |
htop |
增强版进程监控 | 彩色显示、鼠标支持 | 交互式详细监控 |
glances |
全能系统监控工具 | Web界面、多种监控 | 全面系统监控 |
nload |
网络流量监控 | 图形化显示网络流量 | 网络监控 |
slurm |
网络负载监控 | ASCII图形网络监控 | 网络流量监控 |
# tload - 图形化显示
$ tload -d 2
0.45, 0.38, 0.32 load average
|
|...█
|..██
|.███
|███
+-----------------------------------
# uptime - 数字显示
$ uptime
14:30:01 up 10 days, 3:15, 2 users, load average: 0.45, 0.38, 0.32
# top - 详细信息(部分输出)
$ top -bn1 | head -5
top - 14:30:01 up 10 days, 3:15, 2 users, load average: 0.45, 0.38, 0.32
Tasks: 245 total, 1 running, 244 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.6 us, 1.2 sy, 0.0 ni, 93.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7824.4 total, 1024.2 free, 2048.3 used, 4751.9 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used.
# 安装tload
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install procps
# CentOS/RHEL
sudo yum install procps-ng
# 检查命令位置
which tload
# 通常位于: /usr/bin/tload
# 检查终端尺寸
echo "终端尺寸: $COLUMNS x $LINES"
# 尝试调整终端大小
resize
# 使用较小的刷新间隔
tload -d 1
# 检查终端类型
echo $TERM
# 检查/proc/loadavg文件
cat /proc/loadavg
# 检查权限
ls -la /proc/loadavg
# 使用替代方法查看负载
cat /proc/loadavg 2>/dev/null || uptime
-s 选项设置合适的刻度#!/bin/bash
# 基于负载的自动告警脚本
THRESHOLD=2.0 # 负载告警阈值
CPU_CORES=$(nproc)
LOG_FILE="/var/log/load_monitor.log"
# 获取1分钟负载
LOAD_1=$(uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' ')
echo "$(date) - 当前负载: $LOAD_1, CPU核心: $CPU_CORES" >> $LOG_FILE
# 检查负载是否超过阈值
if (( $(echo "$LOAD_1 > $THRESHOLD" | bc -l) )); then
echo "$(date) - ⚠️ 警告: 系统负载过高! ($LOAD_1 > $THRESHOLD)" >> $LOG_FILE
# 发送告警(邮件示例)
echo "系统负载告警" | mail -s "负载过高警告 $(date)" admin@example.com << EOF
系统负载异常告警:
时间: $(date)
当前负载: $LOAD_1
阈值: $THRESHOLD
CPU核心数: $CPU_CORES
建议立即检查系统!
EOF
# 启动详细监控
tload -d 2 -s 0.5 &
fi
#!/bin/bash
# 使用tload生成HTML监控页面
while true; do
# 生成HTML页面
cat > /var/www/html/load_monitor.html << EOF
<!DOCTYPE html>
<html>
<head>
<title>系统负载监控</title>
<meta http-equiv="refresh" content="5">
<style>
body { font-family: monospace; background: #000; color: #0f0; }
pre { background: #111; padding: 10px; }
.info { color: #0ff; }
</style>
</head>
<body>
<h1>系统负载监控</h1>
<p class="info">更新时间: $(date)</p>
<pre>
$(tload -d 1 2>&1 | head -30)
</pre>
<hr>
<p>负载详情: $(uptime)</p>
</body>
</html>
EOF
sleep 5
done
# 远程监控服务器负载
ssh user@server.example.com "watch -n 2 'clear; uptime; echo; tload -d 1'"
#!/bin/bash
# 记录负载历史数据
LOG_FILE="/var/log/load_history.csv"
# 添加CSV头(如果文件不存在)
if [ ! -f "$LOG_FILE" ]; then
echo "timestamp,load_1min,load_5min,load_15min" > $LOG_FILE
fi
# 记录负载数据
while true; do
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
LOAD_DATA=$(uptime | awk -F'load average:' '{print $2}' | tr -d ' ')
echo "$TIMESTAMP,$LOAD_DATA" >> $LOG_FILE
sleep 60 # 每分钟记录一次
done
watch tload 可以保持tload持续运行ssh 和 tload 可以远程监控服务器负载-s 选项根据CPU核心数调整刻度(建议:核心数×0.5)timeout 限制tload运行时间cron 定期记录负载数据