因为有很多服务器负载不足,现在上面要求将服务器 cpu 占用率和内存占用率维持到指定水平,否则要回收,我们不想回收 只能搞个程序丢上去吃 cpu 和内存了,但是服务有高峰低谷,要尽量不影响现有性能,要能快速释放 cpu 和内存;现在弄了个 java 程序丢上去还在测试,读系统 cpu 内存指标去死循环或者分配内存,总感觉有坑,有没有最类似最佳实践。。。
![]() |
1
totoro625 9 小时 38 分钟前
github 搜索甲骨文保活脚本,可以设置全局占用比例,高负载自动退出
|
3
szkoda 9 小时 16 分钟前
长见识了
|
![]() |
4
opengps 9 小时 8 分钟前
自己写个呗,内存占用很好说,cpu 想要稳定维持有点困难
|
![]() |
5
Asakijz 9 小时 1 分钟前
|
6
huifeng OP 看了下网上的保活脚本,貌似不能做到在其他进程内存或者 cpu 占用高的时候及时释放资源
|
![]() |
7
ysc3839 8 小时 45 分钟前 via Android
@opengps CPU 稳定维持的话,把优先级设置成最低就可以了吧?其他程序需要使用 CPU 时,内核会优先调度,理论上影响不大。
|
![]() |
8
coefuqin 8 小时 43 分钟前
你这个只能靠 k8s 的 HPA ,自定义一个空消耗的 CRD ,然后写一个自定义控制器,利用 HPA 观察你业务的资源利用率,当你业务资源利用率低的时候,扩容空消耗;当你业务利用率高的时候,回收空消耗。这种,你能完全控制业务+空消耗的总体资源利用率。
|
![]() |
9
litchinn 8 小时 22 分钟前
Thread.yield() ?
|
10
ala2008 5 小时 11 分钟前
|
11
julyclyde 5 小时 0 分钟前
唉,听起来像大企业的剧本
以前在腾讯就这样,因为分配资源的效率过于低,以至于大家都倾向于多申请、早申请,然后就造成了浪费 |
![]() |
12
shervy 4 小时 51 分钟前
写一个 PY 或者 shell 脚本,定义磁盘、CPU 、内存达到多少百分比就一直维持这个值,就行了,使用 crontab 定时任务一直运行就行了。简单的很。
|
![]() |
13
shervy 4 小时 50 分钟前
@shervy #12 再改进一下,动态调整这些值,等你正在运行的其它应用达到你想要的目标峰值时,shell 脚本动态自动调整(资源利用率降下来以满足你实际业务需求,但最终的那个值不会变)
|
14
varzore1 3 小时 24 分钟前
chaosblade
|
![]() |
15
thinkwei2012 2 小时 46 分钟前
1 楼正解,场景一样和你一样,去年用过一段时间。https://github.com/layou233/NeverIdle
|
![]() |
16
hafuhafu 2 小时 37 分钟前
lookbusy 或者 docker 加上限制 cpu 和内存选项跑死循环之类的东西
|
17
seansong 1 小时 37 分钟前
内存的话,初始化一个大数组?让内存被分配掉就行,然后实时监控一下其他进程的情况,必要的时候进行数组伸缩
cpu 也是类似的,写一个会占用 cpu 的空转方法,然后读取系统当前状况,计算空转多少就好了 |