标签: priority

对无争用 cpuset 中的线程的调度程序优先级和策略有什么影响(如果有的话)?

我有一个 Linux 系统,我们使用 cgroups 创建了两个 cpu_exclusive cpuset,A 和 B,并且我们将所有用户线程和所有未绑定的内核线程迁移到附加到 cpuset A 的 cgroup。在 cpuset A 中运行的事物具有不同的调度程序策略和不同的优先级,并且 cpuset A 中运行的线程比 cpuset A 中的内核数多得多。

还有一些非常活跃的进程附加到 cpuset B 上,这些进程中的用户线程总数永远不会大于 cpuset B 中专门可用的内核数。 目标是屏蔽这些在 cpuset 中运行的重要任务B 来自机器上的其他活动并最大限度地减少处理延迟。

在这样的设置中,在 cpuset B 中运行的用户线程的调度策略/优先级是否有任何可观察到的影响?换种说法:将 B cpuset 线程的调度策略从默认的 SCHED_OTHER 更改为 SCHED_FIFO 或 SCHED_RR 会有什么后果,好还是坏?

似乎答案应该是“否”,因为调度程序应该能够为在 cpuset B 中运行的每个线程分配其自己的专用内核,因此不会有任何优先级或调度,因此 B 的策略和相对优先级cpuset 线程无关紧要。另一方面,需要担心绑定的内核线程和“调度程序域”方面,可能还有其他我没有考虑过的事情。

在任何实际意义上,在过度配置的独占 cpuset 中运行的线程的调度策略和优先级是否重要?

linux scheduling priority cgroups

12
推荐指数
1
解决办法
1238
查看次数

Real time priorities in non real time OS

If I do the following command on my standard Linux Mint installation:

comp ~ $ ps -eo rtprio,nice,cmd
RTPRIO  NI CMD
...
99   - [migration/0]
99   - [watchdog/0]
99   - [migration/1]
 -   0 [ksoftirqd/1]
99   - [watchdog/1]
Run Code Online (Sandbox Code Playgroud)

我得到了一些实时优先级为 99 的进程。

rtprio在非实时 Linux 中是什么意思?这是否意味着如果我只运行一个rtprio99的程序,它会实时运行?实时操作系统在这个故事中处于什么位置?

linux process real-time priority

10
推荐指数
1
解决办法
2787
查看次数

在完全公平调度下,时间片是否取决于进程优先级?

我正在尝试了解完全公平调度程序 (CFS)。根据Linux 内核开发中的Robert Love ,第 3 版(斜体他的,粗体我的):

CFS 不是为每个进程分配一个时间片,而是根据可运行进程总数计算进程应该运行多长时间。CFS 不使用 nice 值来计算时间片,而是使用 nice 值来加权进程将接收的处理器比例:较高值(较低优先级)的进程相对于默认 nice 值接收分数权重,而较低值(更高的优先级)进程获得更大的权重。

然后每个进程运行一个“时间片”,该时间片与其权重除以所有可运行线程的总权重成正比。为了计算实际时间片,CFS 为其在完美多任务处理中“无限小”调度持续时间的近似值设定了目标。这个目标称为目标延迟......让我们假设目标延迟是 20 毫秒,并且我们有两个具有相同优先级的可运行任务。无论这些任务的优先级如何,每个任务都会运行 10 毫秒,然后抢占另一个。如果我们有四个相同优先级的任务,每个任务将运行 5 毫秒。如果有 20 个任务,每个任务将运行 1 毫秒....

现在,让我们再次考虑两个可运行进程的情况,除了有不同的 nice 值——比如说,一个使用默认的 nice 值(零),另一个的 nice 值为 5。这些 nice 值具有不同的权重,因此我们的两个进程接收处理器时间的不同比例。在这种情况下,权重对 nice-5 过程产生大约 1/3 的惩罚。如果我们的目标延迟再次是 20 毫秒,我们的两个进程将分别收到 15 毫秒和 5 毫秒的处理器时间。

第一个粗体句子表示无论优先级如何,任务都具有相同的时间片,而第二个表示时间片取决于 nice 值。哪个是正确的,或者我错过了什么?

linux scheduling priority nice

10
推荐指数
1
解决办法
4061
查看次数

RLIMIT_NICE 有什么用吗?

prlimit在 Ubuntu 中使用我的沙箱来做一些资源限制,这非常有帮助。但是,我不太确定如何处理RLIMIT_NICE. 文档说:

RLIMIT_NICE(自 Linux 2.6.12 起,但请参阅下面的 BUGS)指定可以使用 setpriority(2) 或 nice(2) 将进程的 nice 值提高到的上限。

但是,根据getpriority(2),只有首先由超级用户拥有的进程才能提高它的价值。但如果是这种情况,该RLIMIT_NICE值不会增加太多功能,因为特权用户RLIMIT无论如何都可以任意降低或提高值。

所以我不明白如何使用或解释RLIMIT_NICE. 对于非特权用户来说,整个事情似乎毫无用处,因为他们一开始无法提高优先级,并且将其设置为低于当前优先级是没有意义的。不过,对于超级用户它并没有真正添加任何东西要么是因为nice,和RLIMIT_NICE软,硬限制,可以任意提高。

那么背后的想法是RLIMIT_NICE什么?

linux priority nice ulimit

9
推荐指数
1
解决办法
3166
查看次数

重点优先考虑 X 应用程序

有没有办法重点关注 X 应用程序的优先级,最好是在 CPU 和 I/O 方面?

类似于所有 X 应用程序的优先级都被优化和离子化,但是当它们获得焦点时,它们会被优化和离子化回到正常水平。

我不想重新发明轮子,所以我希望有人已经开发了一个可以做到这一点的应用程序。

scheduling priority nice

8
推荐指数
1
解决办法
444
查看次数

为什么在 /etc/fstab 中引入 fsck 优先级?

/etc/fstab文件内部的第六列中,有一个数字对应于是否应该扫描文件系统的错误。可能的值为:

0 - skip
1 - high priority
2 - low priority
Run Code Online (Sandbox Code Playgroud)

为什么在 /etc/fstab 中引入了 fsck 'priority'?

在此处输入图片说明

linux priority fsck fstab

8
推荐指数
2
解决办法
2915
查看次数

使用 cgroup 控制应用程序的优先级

我想更好地了解 cgroups,并想了解应用 cgroups 的用例。

cgroups 是对不同应用程序进行优先级排序的好方法(即,给予特定类型的应用程序更高的优先级,如 Web 服务器)?

linux scheduling priority cgroups

8
推荐指数
1
解决办法
6041
查看次数

将游戏进程的优先级更改为实时对 CPU 不利吗?

在 Windows 上,我经常将游戏进程的优先级更改为“高”或“实时”以获得性能提升。这从未导致我的硬件出现任何问题。我在想,也许我可以在 Linux 上使用chrt命令来更改游戏进程的实时优先级,因为reniceing,即使到 -20(最高优先级)似乎也没有提供任何明显的提升。但是,在不知道它是否可能对我的 CPU 有害的情况下,我对这样做持谨慎态度。谁能告诉我风险?

linux process hardware games priority

8
推荐指数
1
解决办法
5426
查看次数

ionice 如何与多个驱动器一起工作?

我知道ionice当您有多个进程请求访问相同的磁盘资源时如何帮助您,但是当您有多个磁盘时它如何工作?

例如,您有一个rsync操作从Drive A -> Drive Brsync移动数据,另一个操作从Drive C -> Drive D移动数据。

从理论上讲,由于它们不竞争资源,因此ionice这些rsync进程之一不应改变其吞吐量。这是它的工作方式,还是会影响性能?

此外,在独立于驱动器速度的linux系统上可能遇到的总I/O是否有一些“上限” ?就像连接 100 个SSD驱动器一样,在某些时候,操作系统会遇到驱动器速度之外的瓶颈吗?

performance filesystems ionice priority

7
推荐指数
1
解决办法
206
查看次数

Linux 是否会自动更改进程优化?

我知道您可以使用setprioritynice或来更改流程的好处renice

但是,Linux 是否会在没有用户输入的情况下自动调整/更改进程优化?

我有一个setpriority在 C 中使用的进程,如下所示:

setpriority(PRIO_PROCESS, 0, -1)
Run Code Online (Sandbox Code Playgroud)

当进程运行时,我可以通过运行htop看到它的 niceness 值现在是 -1 。

在调查远程机器上的崩溃时,向我提供了 htop 的输出。我注意到此进程的 niceness 值在一个实例上更改为 0,在另一个实例上更改为 6。我想知道这是由内核更改的,还是更改此值的唯一方法是让用户或脚本故意进行更改。

linux process priority nice

7
推荐指数
1
解决办法
1550
查看次数