Files
karuo-ai/01_卡资(金)/金仓_存储备份/系统监控/SKILL.md
karuo 5caf3b1f50
Some checks failed
Sync GitHub to CKB NAS Gitea / sync (push) Has been cancelled
🔄 卡若AI 同步 2026-02-17 15:40 | 变更 17 个文件 | 排除 >20MB: 4 个
2026-02-17 15:40:00 +08:00

8.7 KiB
Raw Blame History

name, description, triggers, owner, group, version, updated
name description triggers owner group version updated
系统监控 CPU/内存/磁盘实时监控与进程管理 系统状态、CPU占用、内存使用、杀进程、端口占用 金仓 1.0 2026-02-16

系统监控

监控和诊断卡若 MacBook Pro (Apple Silicon) 的系统状态。

快速诊断流程

┌──────────────────────────────────────────────────────────────┐
│                      系统诊断工作流                           │
├──────────────────────────────────────────────────────────────┤
│  1. 系统概览     2. 定位问题     3. 处理      4. 验证        │
│       │              │             │            │            │
│       ▼              ▼             ▼            ▼            │
│    top/htop      ps aux排序     kill/重启   再次检查        │
│   memory_pressure  lsof端口                                  │
└──────────────────────────────────────────────────────────────┘

1. 系统概览

快速状态检查

# CPU和内存快照
top -l 1 | head -12

# 内存压力(最重要指标)
memory_pressure

# 磁盘使用
df -h /System/Volumes/Data

# 系统运行时间
uptime

详细资源监控

# 交互式监控(推荐 htop
htop   # brew install htop

# 或使用原生 top
top -o cpu  # 按 CPU 排序
top -o mem  # 按内存排序

# 内存详情
vm_stat | perl -ne '/page size of (\d+)/ and $size=$1; /Pages\s+(\w+)[:\s]+(\d+)/ and printf("%-16s % 8.2f MB\n", "$1:", $2 * $size / 1048576);'

2. 进程监控

CPU 和内存 TOP10

# CPU 占用 TOP10
ps aux | sort -nrk 3 | head -10

# 内存占用 TOP10
ps aux | sort -nrk 4 | head -10

# 格式化输出
ps aux --sort=-%cpu | awk 'NR<=11 {printf "%-10s %-6s %-6s %s\n", $1, $3"%", $4"%", $11}'

查找特定进程

# 按名称查找
ps aux | grep -i <进程名>

# 查看进程树
pstree -p <PID>

# 查看进程详情
ps -p <PID> -o pid,ppid,user,%cpu,%mem,start,time,command

3. 端口管理

查看端口占用

# 查看指定端口
lsof -i :<端口号>

# 常用开发端口
lsof -i :3000    # React/Next.js
lsof -i :5173    # Vite
lsof -i :8080    # 通用后端
lsof -i :8000    # Django
lsof -i :4000    # Phoenix
lsof -i :27017   # MongoDB
lsof -i :3306    # MySQL
lsof -i :6379    # Redis
lsof -i :5432    # PostgreSQL

# 查看所有监听端口
netstat -an | grep LISTEN
# 或
lsof -iTCP -sTCP:LISTEN -n -P

杀死占用端口的进程

# 方法1直接杀死
kill $(lsof -t -i:<端口号>)

# 方法2强制杀死
kill -9 $(lsof -t -i:<端口号>)

# 方法3查看后再杀
lsof -i :3000  # 先查看 PID
kill -9 <PID>

4. 进程管理

结束进程

# 温柔关闭(发送 SIGTERM
kill <PID>

# 强制终止(发送 SIGKILL
kill -9 <PID>

# 按名称杀死
pkill -f <进程名>

# 杀死所有同名进程
killall <进程名>

批量清理

# 杀死所有 node 进程
pkill -f node

# 杀死所有 python 进程
pkill -f python

# 杀死所有僵尸进程
ps aux | grep 'Z' | awk '{print $2}' | xargs kill -9 2>/dev/null

5. 常用服务重启

系统服务

# Finder文件管理器卡住
killall Finder

# Dock任务栏卡住
killall Dock

# 菜单栏(状态栏图标异常)
killall SystemUIServer

# 控制中心
killall ControlCenter

# Spotlight搜索异常
sudo mdutil -E /

iCloud 服务

# 重启 iCloud 同步
killall bird && killall cloudd

# 强制刷新
defaults write com.apple.bird DisableUpload -bool false
killall bird cloudd

开发服务

# 重启 Docker Desktop
osascript -e 'quit app "Docker"'
sleep 2
open -a Docker

# 重启 MongoDB
brew services restart mongodb-community

# 重启 MySQL
brew services restart mysql

# 重启 Redis
brew services restart redis

6. Docker 管理

状态检查

# 容器状态
docker ps -a

# 磁盘占用
docker system df

# 镜像列表
docker images

清理

# 清理停止的容器
docker container prune -f

# 清理无用镜像
docker image prune -a -f

# 清理所有(慎用)
docker system prune -a --volumes -f

# 清理构建缓存
docker builder prune -a -f

7. 网络诊断

基础检查

# 网络质量测试
networkQuality

# DNS 查询
nslookup <域名>
dig <域名>

# 路由追踪
traceroute <域名>

# 网络接口信息
ifconfig en0

连接测试

# 测试端口连通性
nc -zv <IP> <端口>

# HTTP 请求测试
curl -I https://www.baidu.com

# 查看外网 IP
curl ip.sb

DNS 刷新

# 刷新 DNS 缓存
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
echo "DNS 缓存已刷新"

Cursor 上传占用降低

已在 ~/Library/Application Support/Cursor/User/settings.json 中建议或已配置:

  • "redhat.telemetry.enabled": false — 关闭 Red Hat 扩展遥测上传
  • "telemetry.telemetryLevel": "off" — 关闭 IDE 遥测
  • "cursor.general.enableCodebaseIndexing": false — 关闭代码库索引(避免整库分块上传)

需在 Cursor 内手动操作(进一步降上传):

  1. 开启 Privacy ModeCursorSettingsGeneral → 打开 Privacy Mode(代码不存 Cursor/第三方,部分 AI 能力会受限)
  2. 少 @ 大文件:对话里少引用整文件,只 @ 必要片段,可明显减少单次请求上传量
  3. 不用时关扩展:禁用暂时不用的扩展,减少后台同步与遥测

8. 性能基准

正常指标

指标 正常 警告 危险
CPU <50% 50-80% >80%持续
内存压力 正常(normal) 警告(warn) 严重(critical)
磁盘可用 >100GB 50-100GB <50GB
交换内存 <2GB 2-8GB >8GB

性能测试

# CPU 压力测试
yes > /dev/null &  # 创建负载
# 按 Ctrl+C 停止,然后 kill %1

# 内存测试
memory_pressure

# 磁盘 I/O 测试
dd if=/dev/zero of=/tmp/testfile bs=1m count=1024
rm /tmp/testfile

9. 一键诊断脚本

#!/bin/bash
# 系统快速诊断

echo "=========================================="
echo "🖥️  系统诊断报告 - $(date)"
echo "=========================================="
echo ""

# 1. 系统信息
echo "📊 系统信息"
echo "-------------------------------------------"
sw_vers
echo ""

# 2. 运行时间和负载
echo "⏱️  运行时间和负载"
echo "-------------------------------------------"
uptime
echo ""

# 3. 内存压力
echo "🧠 内存压力"
echo "-------------------------------------------"
memory_pressure
echo ""

# 4. 磁盘空间
echo "💾 磁盘空间"
echo "-------------------------------------------"
df -h /System/Volumes/Data
echo ""

# 5. CPU TOP5
echo "🔥 CPU 占用 TOP5"
echo "-------------------------------------------"
ps aux | sort -nrk 3 | head -6 | awk '{printf "%-10s %6s%% %s\n", $1, $3, $11}'
echo ""

# 6. 内存 TOP5
echo "📦 内存占用 TOP5"
echo "-------------------------------------------"
ps aux | sort -nrk 4 | head -6 | awk '{printf "%-10s %6s%% %s\n", $1, $4, $11}'
echo ""

# 7. 监听端口
echo "🌐 监听端口"
echo "-------------------------------------------"
lsof -iTCP -sTCP:LISTEN -n -P | awk 'NR>1 {print $1, $9}' | sort -u | head -10
echo ""

echo "=========================================="
echo "✅ 诊断完成"
echo "=========================================="

10. 常见问题处理

问题 快速解决
电脑很卡 memory_pressure 检查内存,关闭高占用应用
端口被占用 lsof -i :端口号 查看,kill -9 杀死
Finder 无响应 killall Finder
Docker 异常 重启 Docker Desktop 或 docker system prune
网络异常 刷新 DNSsudo dscacheutil -flushcache
Cursor 上传大 关遥测/关代码库索引见上文「Cursor 上传占用降低」;可开 Privacy Mode
iCloud 不同步 killall bird && killall cloudd
Spotlight 搜索慢 sudo mdutil -E / 重建索引

推荐工具

工具 说明 安装
htop 交互式进程监控 brew install htop
btop 更漂亮的系统监控 brew install btop
ncdu 交互式磁盘分析 brew install ncdu
duf 现代化 df brew install duf
bandwhich 网络带宽监控 brew install bandwhich