RAM-Altman:每天给 Sam Altman 发一封邮件,报告你电脑里闲置的 RAM
RAM-Altman reports unused RAM on your machine, one email a day
一个名为 RAM-Altman 的 bash 脚本会在机器可用 RAM 超过 10% 时,每天向 Sam Altman 发送一封邮件,报告闲置内存情况。脚本每 5 分钟采样一次,正确统计 page cache,最多每日发信一封,并轮换 8 个主题、10 条正文和 6 个落款,附带 14 个测试。
一个每天给 Sam Altman 写一封信、汇报他错过的 RAM 的 bash 脚本。
在 ram-altman.lol 阅读示例邮件,无需安装。
你的电脑里有 RAM。就在此刻。就那样待在一台个人电脑里,很个人。
你可能一直把这当作“电脑正常工作”。在最近一期 Cheeky Pint 节目中,OpenAI 的 CEO 提出了另一种看法:
“从全球分配的角度来看,实际上,让每个人都把世界上有限的 DRAM 供应中的一部分放在自己的电脑里,是相当糟糕的”
—— Sam Altman
他补充说,那些 RAM “可能只有 5% 的时间在被使用”。
这对某类人来说引出了一个显而易见的问题:总该有人来监控这个吧?
于是我们写了一个脚本。如果你的机器有超过 10% 的 RAM 可用,它每天发一封邮件让 Sam 知道。这似乎才公平。如果没人告诉他 RAM 在哪,他也没法解决问题。
功能
- 跟踪总 RAM、已用 RAM 和可用 RAM,以及你在全球分配当局那里的信誉状况
- 正确处理页缓存,这一点已经让它领先于大多数关于 RAM 的争论
- 每天最多发一封邮件,因为我们是囤积者,不是野兽
- 轮换 8 个主题行、10 条正文和 6 个落款,让这个笑话以精心管理的节奏慢慢变老
- 把每次采样记录到 CSV,以备审计人员到来
- 附带 14 个测试,比 DRAM 市场有过的合理结果还多
- 用 bash 编写,因为 Electron 版本会通过用光所有 RAM 来解决问题
今日通信样例
Subject: You missed a spot
Hi Sam,
Please don't be alarmed, but there is 8.6 GiB of RAM on my desk that isn't in
a data centre. That's 56.2% of what's installed here, and as far as I can tell
it has no plans today.
Hoarding responsibly,
A concerned RAM owner
--
Sent automatically, at most once a day, by a small script on one PC.
Reply if you'd like it to stop.
这些数字是真实的。它们来自你的机器。这才是令人担忧的部分。
什么算作“已用”?
used = MemTotal - MemAvailable
MemAvailable 是内核自己对程序在不换页的情况下能占用多少内存的估计。空闲 RAM 算作可用。内核可以回收的缓存也算。tmpfs 和共享内存不算,因为它们不能简单地交还。
每个系统管理员都花了好多年解释 Linux 没有吃掉你的 RAM,以及空闲 RAM 就是浪费的 RAM。花了几十年才有一位重要人物同意后半句,而他想让它被寄给他。
严格来说,页缓存是在做有用的工作,所以把它算作可用是对另一方的慷慨让步。就当这是认罪协议吧。
在低于 3.14 的内核上,没有 MemAvailable,脚本会根据空闲内存加上可回收缓存来估算。如果你用的是这类内核,你的 RAM 可能是安全的。没人会来要它。
安装
你需要 Linux、bash,以及可用的 sendmail、msmtp 或 mail 命令。你的 RAM 是默认存在的。
git clone https://github.com/IainKay/ram-altman.git cd ram-altman chmod +x ram-altman.sh test-ram-altman.sh ./ram-altman.sh --status # see the evidence against you ./ram-altman.sh --dry-run # preview an email without sending it
示例输出,来自一台已经全盘招供的模拟机器:
Total: 15.3 GiB
Used: 6.7 GiB
Available: 8.6 GiB (56.2%)
Free: 0.3 GiB
Cache: 8.2 GiB
要真正运行它,用 crontab -e 把下面这行加到你的 crontab 中:
RAM_ALTMAN_TO=recipient@example.com RAM_ALTMAN_FROM=you@example.com RAM_ALTMAN_FROM_NAME=Your Name */5 * * * * /path/to/ram-altman.sh
它每五分钟采样一次,每天最多发一封邮件。如果发送失败,它会在下次运行时重试,因为这条消息很重要。
| 设置 | 作用 | 默认值 |
|---|---|---|
RAM_ALTMAN_TO |
谁收到坏消息 | 必填 |
RAM_ALTMAN_FROM |
一个你可以用来发送的真实地址 | 必填 |
RAM_ALTMAN_FROM_NAME |
你的名字,或你的 RAM 化名 | 可选 |
RAM_ALTMAN_THRESHOLD |
当可用 RAM 高于此百分比(整数)时发邮件 | 10 |
RAM_ALTMAN_STATE_DIR |
日志和状态文件所在位置 | ~/.local/state/ram-altman |
自我审计
让它运行一段时间,然后看看你的机器表现如何:
awk -F, 'NR>1 { used += $3; total += $2 } END { if (total) printf "Your RAM in use: %.1f%% (the claim: maybe 5%%)\n", used * 100 / total }' \ ~/.local/state/ram-altman/usage.csv
是的,内存使用占比和在用时间占比不是一回事。如果你是来指出这一点的,欢迎来到 Hacker News。很高兴你在这里。
请做个好邻居
一个人一天发一封邮件是个笑话。一万封就是一次拒绝服务攻击,只不过素材更好。
--dry-run是享受这一切的最佳方式。它不花一分钱,所有笑话都在里面。- 这个仓库不附带任何人的邮箱地址,也请不要添加。
- 请使用你自己的真实地址。不要伪造,也不要把它跑遍你的服务器集群。
- 如果有人让你停下,就停下。每封邮件的页脚都承诺了这一点,所以请信守承诺。
你也可以把它指向一个会乐在其中的人,比如那位一直在等 DDR5 降价的朋友。
常见问题
这能缓解 DRAM 短缺吗? 不能。
这是个严肃的工具吗? 内存核算部分是。通信部分不是。
它能在 macOS 上运行吗?
不能,它读取的是 /proc/meminfo。另一方面,你的内存大概是焊死的,这让你成为全球分配计划中最难攻克的目标。
为什么阈值是 10%? 低于这个值,你的机器已经受够了。
运行它会占用内存吗? 短暂占用。之后会归还到全局池中,这一点比我们其他人强多了。
我可以在不给人发邮件的情况下运行测试吗?
可以。./test-ram-altman.sh 使用模拟内存和一个假的 sendmail。没有收件箱受到伤害。
我能在不安装任何东西的情况下看到它吗? 可以。ram-altman.lol 会循环展示真实的邮件,并附有示例数据。
我该拿这么多内存做什么? 再开一个浏览器标签页。你还有时间。
为 Sam 说句公道话
Altman 后来表示那些言论被断章取义了,他写道:
“我其实确实希望这个世界拥有海量内存,希望人们想往电脑里塞多少就塞多少”
他接着补充说“我希望你拥有超多内存”和“让我们造更多”,还一度把他在 X 上的显示名改成了 Ram Altman,这客观上非常棒,也是这个项目名字的由来。
最初的言论出现在一场关于本地运行 AI 模型的讨论中,而利用率这个论点确实成立:服务器确实比你的台式机更忙。我们只是觉得用 cron 来回复更好笑。
再说,如果他想让你拥有超多内存,那这个脚本根本就不是抱怨。它是一份每日进度报告。
许可证
自由如未分配。
来源:Hacker News · github.com