AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1010382
Accepted
Radio Controlled
Radio Controlled
Asked: 2020-04-02 02:18:30 +0800 CST2020-04-02 02:18:30 +0800 CST 2020-04-02 02:18:30 +0800 CST

根据他的 CPU 使用情况实时设置所有用户进程的 nice 值

  • 772

为了平衡用户在共享计算服务器上的 CPU 消耗,我认为如果可以:

  1. 为用户的所有进程设置 nice 级别
  2. 此外,实时调整此级别
  3. 此外,这个级别不仅适用于未来,而且适用于正在运行的作业
  4. 此外,从用户当前的整体 CPU 使用率得出这个级别

这个想法是用户可以调用任意数量的作业。但是如果有其他用户,他的优先级会下降,这取决于他要求多少。所以 A 可以一次使用所有 32 个内核。然后另一个用户 B 来了,只开始了一项工作。现在 A 的优先级应该低于 B。然后 C 来启动 8 个作业。他现在应该在 A 和 B 之间有一个优先级。但是,优先级实际上不应该基于进程的数量,而是基于它们的整体 CPU 需求——如果可以确定的话。

我想这可能与将相同份额的 CPU 分配给所有活跃用户相同,只要他们使用它并将其余的分配给所有想要更多的人。

你认为这有可能吗?

你觉得这有道理吗?

load-balancing users realtime nice process-priority
  • 1 1 个回答
  • 107 Views

1 个回答

  • Voted
  1. Best Answer
    John Mahowald
    2020-04-03T07:28:17+08:002020-04-03T07:28:17+08:00

    每一项任务都为自己

    一个过于简单的方法是根本不给它们配额。在这个 32 CPU 的机器上,A + B + C 是 41 个工作。加上内核的一些希望很小的系统开销。但是,并非所有东西都受 CPU 限制,在 I/O、内存和其他方面存在瓶颈。所以平均负载实际上不是 41,响应时间和吞吐量可能是可以容忍的。当然,没有任何控件可以防止进一步的负载导致性能问题。

    公平的分享

    也许资源应该按比例分配。例如Solaris 的公平共享调度程序就是这样做的。假设 AB 和 C 都是 32 个核心池中某些区域的项目,每个都有 1000 个份额。(有关实际区域示例,请参阅 Greg 的注释。)B 和 C 将以 100% 运行,因为它们使用的少于第三个。但是 A 在 23 个 CPU 上运行,因为需要 1 + 8 才能让 B 和 C 分得一杯羹。如果您的管理员想出一些分配它们的方案,不平等的份额是可能的。

    Linux cgroups 后来出现了类似的东西。CPU cgroups 可用于实现比例份额或特定配额。这就是 systemd 切片和 Kubernetes CPU 资源的分配方式。

    接下来要运行什么

    由于有许多任务等待运行,理想情况下,调度程序不会让任何东西等待太长时间才能在 CPU 上运行。在微观层面上,运行队列或等效工作的方式也与系统的执行方式相关。

    Linux CFS 调度程序为每个等待的任务划分时间片,这在这方面是公平的。此外,那些使用较少时间的任务首先完成。它具有优先交互事物,空闲等待用户输入的有用效果。

    优先级(包括不错的值)是调度程序决策的输入。而且它不依赖配额人为地限制使用,这很好。然而,调整优先级,即使存在这样做的方案,也有限制。当每个用户都有不同优先级的任务时,一个系统范围的优先级编号无济于事,但仍需要保持公平的资源份额。

    • 1

相关问题

  • 网络负载平衡服务器无法相互通信

  • 用于网络监控的路由/代理 SNMP 陷阱(或 Netflow、通用 UDP 等)的解决方案?

  • 防止拒绝服务攻击的最佳技术是什么?

  • 添加备份互联网连接需要哪些硬件?

  • 什么是最有效的 Windows 负载平衡解决方案?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve