博客跑在一台 1 核 1.9G 内存、20G 盘的小鸡上,这个配置之前提过好几次了。穷,但是够用,所以一直懒得换。这次想写的是最近又捣鼓了一遍这台机器上装的那些小工具,属于运维碎碎念,没什么大技术含量,图个真实。
btop:装上就回不去了
之前看监控一直用 htop,在 linux-commands-cheatsheet 那篇里也写过它。htop 挺好,但它是 2004 年的审美了。btop 是 C++ 重写的现代版,装完第一眼的感觉就是:这界面是给 2026 年的人看的。
CPU 每个核心一个波形图,内存和网络都是实时曲线,下面还能直接看到磁盘 IO 和连接着的进程列表。最爽的是它支持鼠标点击,点一下进程就能选中,按 k 就能杀掉。虽然我就一个核心,波形图只画了一条孤零零的线,但架不住它好看啊。
内存占用大概 30-40M,对小鸡来说不算便宜,但我平时也就挂着看看,看完关掉,可以接受。
| |
Ubuntu 24.04 的源里就有,不用编译,装上就能用。
内存清理:1.9G 是抠出来的
上次迁移到系统 nginx 之后,内存宽裕了一点点,但随着服务越装越多,又开始吃紧了。这次干脆做了一次大扫除:
| |
排第一的是 snapd。我基本不用 snap 装东西,但它自己常驻,占着 100 多 M。顺手把 snapd 服务给禁了,反正要用 snap 的时候再起。
第二个是 unattended-upgrades,自动安全更新。这个我留着了,虽然吃内存,但被扫到 2023 年的老洞的时候,就一秒钟都嫌它贵。安全这个东西平时看不见,出事的时候才知道好。
然后是常规的日志清理,journald 限制一下大小:
| |
一顿操作下来,可用内存从 300M 左右回到了 500M。不要小看这几百兆,在 1.9G 的机器上,这就是"能再挂一个服务"和"等着 OOM"的区别。
顺便把 swappiness 调了
小鸡内存小,swap 是要开的,但默认的 swappiness=60 会让系统太积极地把内存页丢到 swap 里,一旦真的要用又得从盘上读回来,20G 的盘本来就慢,一卡一卡的很难受。
| |
写进 /etc/sysctl.conf 里重启也生效。这个值没有标准答案,我的原则是:swap 留着保命,但平时别去碰它。
最后
这波折腾没有产出什么新功能,博客外观一点没变,速度也就快了那么一丢丢。但运维这事儿吧,有时候就是给机器做家务,看着 htop 换成 btop、内存条曲线从危险的红区回到安全的绿区,爽点就在这里。
下一篇估计写写 nginx 日志切割,已经欠了三周了,欠着欠着就习惯了。