求思路,如何通过程序调整服务器的 cpu 和内存占用率 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
huifeng
V2EX    云计算

求思路,如何通过程序调整服务器的 cpu 和内存占用率

  •  
  •   huifeng 159 天前 2149 次点击
    这是一个创建于 159 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为有很多服务器负载不足,现在上面要求将服务器 cpu 占用率和内存占用率维持到指定水平,否则要回收,我们不想回收 只能搞个程序丢上去吃 cpu 和内存了,但是服务有高峰低谷,要尽量不影响现有性能,要能快速释放 cpu 和内存;现在弄了个 java 程序丢上去还在测试,读系统 cpu 内存指标去死循环或者分配内存,总感觉有坑,有没有最类似最佳实践。。。

    19 条回复    2025-05-07 14:25:12 +08:00
    totoro625
        1
    totoro625  
       159 天前
    github 搜索甲骨文保活脚本,可以设置全局占用比例,高负载自动退出
    huifeng
        2
    huifeng  
    OP
       159 天前
    @totoro625 感谢 我去瞅瞅
    szkoda
        3
    szkoda  
       159 天前
    长见识了
    opengps
        4
    opengps  
       159 天前
    自己写个呗,内存占用很好说,cpu 想要稳定维持有点困难
    Asakijz
        5
    Asakijz  
       159 天前
    huifeng
        6
    huifeng  
    OP
       159 天前
    看了下网上的保活脚本,貌似不能做到在其他进程内存或者 cpu 占用高的时候及时释放资源
    ysc3839
        7
    ysc3839  
       159 天前 via Android
    @opengps CPU 稳定维持的话,把优先级设置成最低就可以了吧?其他程序需要使用 CPU 时,内核会优先调度,理论上影响不大。
    coefu
        8
    coefu  
       159 天前
    你这个只能靠 k8s 的 HPA ,自定义一个空消耗的 CRD ,然后写一个自定义控制器,利用 HPA 观察你业务的资源利用率,当你业务资源利用率低的时候,扩容空消耗;当你业务利用率高的时候,回收空消耗。这种,你能完全控制业务+空消耗的总体资源利用率。
    litchinn
        9
    litchinn  
       159 天前
    Thread.yield() ?
    ala2008
        10
    ala2008  
       159 天前
    丢几个 docker 服务,特别是 java 的,保你资源耗尽
    julyclyde
        11
    julyclyde  
       159 天前
    唉,听起来像大企业的剧本

    以前在腾讯就这样,因为分配资源的效率过于低,以至于大家都倾向于多申请、早申请,然后就造成了浪费
    shervy
        12
    shervy  
       159 天前
    写一个 PY 或者 shell 脚本,定义磁盘、CPU 、内存达到多少百分比就一直维持这个值,就行了,使用 crontab 定时任务一直运行就行了。简单的很。
    shervy
        13
    shervy  
       159 天前
    @shervy #12 再改进一下,动态调整这些值,等你正在运行的其它应用达到你想要的目标峰值时,shell 脚本动态自动调整(资源利用率降下来以满足你实际业务需求,但最终的那个值不会变)
    varzore1
        14
    varzore1  
       159 天前
    chaosblade
    thinkwei2012
        15
    thinkwei2012  
       159 天前
    1 楼正解,场景一样和你一样,去年用过一段时间。https://github.com/layou233/NeverIdle
    hafuhafu
        16
    hafuhafu  
       159 天前
    lookbusy 或者 docker 加上限制 cpu 和内存选项跑死循环之类的东西
    seansong
        17
    seansong  
       159 天前
    内存的话,初始化一个大数组?让内存被分配掉就行,然后实时监控一下其他进程的情况,必要的时候进行数组伸缩

    cpu 也是类似的,写一个会占用 cpu 的空转方法,然后读取系统当前状况,计算空转多少就好了
    guo4224
        18
    guo4224  
       158 天前 via iPhone
    按 17 楼说的,实时读系统状态动态调整。
    xiaotianhu
        19
    xiaotianhu  
       158 天前
    感觉编程之美上有一道类似的题啊。控制 CPU 使用率,只不过没法自动调节
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     826 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 21:31 PVG 05:31 LAX 14:31 JFK 17:31
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86