我写了一个堪称愚蠢的小工具

124 天前
 shawnbluce

不知道各位有没有那种需要起一个程序占用特定 CPU 和内存的需求,我最近是有。在公司的一个需求自测的时候,需要设置「 CPU 告警阈值」和「内存告警阈值」,然后通过占用 CPU 和内存的方式触发告警。

之前占用 CPU 我都是开一个 Python Console 然后计算 999999999999999 ** 99999999999999999,虽然能用但非常不优雅:每个 Python 进程只能占用 1 个核心且不能占用 0.5 个核心。内存则是 dd if=/dev/zero of=output_file bs=4k count=xxx 来生成一个固定大小的文件,然后用 Python open('output_file').read(),同样是又麻烦又不优雅。

所以开发了这个叫 eat 的小工具,可以通过下面的命令占用指定的 CPU 和内存数量

eat -c 4            # 占用 4 个 CPU 核
eat -c 100%         # 占用所有 CPU 核
eat -m 4g           # 占用 4GB 内存
eat -m 20m          # 占用 20MB 内存
eat -m 100%         # 占用所有内存
eat -c 2.5 -m 1.5g  # 占用 2.5 个 CPU 核和 1.5GB 内存
eat -c 3 -m 200m    # 占用 3 个 CPU 核和 200MB 内存
eat -c 100% -m 100% # 占用所有 CPU 核和内存

贴上 GitHub 地址各位有兴趣可以试一下~

8933 次点击
所在节点    程序员
53 条回复
adrianzhang
124 天前
压力测试嘛,属于大类应用,不愚蠢。
luzemin
124 天前
"If it's stupid but it works, it's not stupid"
privil
124 天前
有个 lookbusy 的程序和你这个差不多。不过造轮子也不嫌弃多。哈哈
bojackhorseman
124 天前
kk2syc
124 天前
这就把你的代码合并到甲方的项目里,md
zhwguest
124 天前
大名鼎鼎的 pi....
hlhshsh
124 天前
@kk2syc 这是高手
hhacker
124 天前
我觉得这个很好啊, 哪里愚蠢了, 就是标题有点愚蠢
kk2syc
124 天前
@hlhshsh 糊口饭吃 /抱拳
shawnbluce
124 天前
不是说真的愚蠢啦,就是开个小玩笑~
Mithril
124 天前
你这内存占用功能可以搞个线程随机读写,保证它不被交换出去。
shawnbluce
124 天前
@kk2syc #5 然后每次优化就少用 0.5 CPU 和 500M 内存对吧,每年做两次性能优化,每次都有新感觉~
shawnbluce
124 天前
@Mithril 有道理,后面我试着改一下
kk2syc
124 天前
@shawnbluce 没办法,甲方开始拖欠尾款了,需求还一直增加。

老板:我想让马儿跑又不想喂草怎么办呢?
Foralrec
124 天前
可以看下 stress-ng
Mithril
124 天前
@shawnbluce 改完以后你再把进程优先级改为实时,然后一条 eat -c 100% -m 100%直接把系统搞死:)
sayitagain
124 天前
能解决实际应用问题的,管你怎么实现,都不愚蠢。
cominghome
124 天前
笑死,回想刚工作的时候公司做资源盘点,要回收使用率低的物理服务器,领导安排写了个随机读写程序开多线程,成功把 10%不到的平均使用率跑到了 70%+
choury
124 天前
为啥不用各发型版都自带的 stress-ng 呢,功能还更多
hercat
124 天前
前段时间也有类似的需求,不过我用的是 polinux/stress ,已点 star 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1054706

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX