V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
arcaitan
V2EX  ›  Linux

大侠们,求问一个负载均衡的问题

  •  
  •   arcaitan · 2020-11-20 16:05:12 +08:00 · 2037 次点击
    这是一个创建于 1448 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们有个大概 50 人的 team,有大概 10 台左右 36 核的机器

    有人在某一台机器上用“make -jnproc”的时候,会把这台 instance 的整个 cpu 资源消耗掉,然后其他人完全不能用了,有什么好办法做限制么?

    我考虑过改 /etc/security/limits.conf
    但是,问题是,
    1. 有时候如果这台机器是很空闲的,那限制了这个进程数就会降低效率了。
    2. 如果改了这个文件,很快就会被 cfengine 给改回去,不知道这个要怎么配置 cfengine
    6 条回复    2020-11-24 10:24:55 +08:00
    yanqiyu
        1
    yanqiyu  
       2020-11-20 17:01:43 +08:00   ❤️ 1
    我觉得这样的需求使用 cgroups 更加合理,你应该限制单个用户的 slice 整体的 cpu.shares (或者是 cpu.weight, 对于 cgroupv2) 保证在用户之间争夺 CPU 时间的时候能按照用户(而非进程)公平分配。

    当然,服务器整个占用爆炸的时候会导致相应性下降,想要保证响应性的话,这时候应该考虑所有用户设置占用上限,比如 95% 这样的数值(会浪费性能)
    ryd994
        2
    ryd994  
       2020-11-20 17:33:20 +08:00 via Android
    不必用技术方法去解决行政问题
    规定编译必须加 nice 。不 nice 导致其他人用不了的,一次罚 xx
    或者往所有人的 bash profile 加 alias make="nice make"
    或者可以跑个后台服务,看到 gcc 和 make 就 renice

    正经办法当然是 cgroup 啦
    ryd994
        3
    ryd994  
       2020-11-20 17:37:09 +08:00 via Android
    *可以把 alias 加到 /etc/bash.bashrc 或者 /etc/profile 里
    julyclyde
        4
    julyclyde  
       2020-11-20 17:47:01 +08:00
    @yanqiyu cgroup 也依然是硬限制吧?在机器闲置的情况下会导致用不满
    arcaitan
        5
    arcaitan  
    OP
       2020-11-24 10:13:09 +08:00
    @ryd994 行政手段不太现实,每一个 it 人都很桀骜不驯很有自己 idea 的。
    arcaitan
        6
    arcaitan  
    OP
       2020-11-24 10:24:55 +08:00
    @yanqiyu 谢谢大佬回答,我对 cgroups 还不太了解,等我学习一下。我的一个担忧是,如果做了 cpu shares 的限制,用户上去做 make 操作的时候,如果一旦超出限制,是不是会把 make 整个停掉?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:35 · PVG 22:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.