CFQ IO 调度程序支持优先级,尽管我不确定 Deadline 是否支持(我认为不是)。前提是当我重新处理一个任务时,它会在完全公平的调度程序下获得更大的 CPU 份额。由于此任务可能会更频繁地运行,因此在需要时也会更频繁地调用 IO,对吗?
我想知道即使 IO 调度程序不支持优先级,任务在接受时是否会获得更多/更少的 IO?或者磁盘/内存管理是完全独立的?
当我在玩游戏时,我不希望 Dropbox 占用我的网络连接。通过在播放时关闭它,我已经能够显着减少我的延迟。对于 Web 浏览的较小扩展也是如此。
我正在寻找网络等价物以实现良好和调度策略(SCHED_BATCHschedtool 中的等)。这样的事情存在吗?或者,在另一个进程正在运行时自动切断特定进程的网络访问也可以。
如何正确识别当前占用CPU队列的实时进程并使用ps统计它们?我知道有一堆像 prio、rtprio、pri、nice 这样的文件,但不知道正确使用。似乎我需要使用类似的东西ps -eo rtprio,prio,cpu,cmd --sort=+rtprio来获取完整列表,但对我来说似乎不正确,因为很多进程-在 RTPRIO 列中都带有符号。例如,我有一个运行 Oracle Linux 的 48 核系统,并尝试确定以下问题:
我想配置我的桌面 Linux 系统,以便每当我开始运行特定程序(运行该程序的进程)时,相应的进程都会获得高优先级。这该怎么做?
我知道我可以针对每个运行程序的实例(即针对特定进程)单独执行此操作。但是如何为程序配置默认值(即为所有未来进程)?
内核版本:4.10.11-200.fc25.x86_64
我正在一台装有 Ubuntu 10.04 的 Linux 机器上进行构建。我怎样才能真正加快我的构建?我有 4 个 CPU 和大量 RAM。我已经将进程组设置为 -20。还有什么我可以做的吗?
有谁知道是否可以在一个命令中执行和重新启动一个进程,即无需使用 ps 命令在进程列表中查找该命令,然后重新启动该特定的 pid。
在某些设备中,CPU 速度是动态的,负载较多时速度会更快。
我想知道是否可以设置进程的良好级别或优先级,以便在运行时不会影响 cpu 速度的提高。
即进程正在全力运行,但仅使用空闲 cpu 周期作为低优先级。但也不会导致CPU速度的提高。
当 cpu 关闭时,进程停止。当 cpu 速度慢时,进程可能会占用一些 cpu,也许是大部分。当 cpu 很快时,因为另一个进程正在以 90% 的速度运行,进程会获得剩余 10% 的快速 cpu。然后其他进程停止,因此低优先级进程获得 100% 的 cpu,但频率控制器看不到这个低优先级进程并降低频率。
我知道在其他操作系统中存在进程优先级,从 -20(大多数优先级)到 19(更少优先级),但 Linux 似乎忽略了它们。
现在我正在后台构建内核(尽管make进程的优先级为 0)并且由于花费了相当长的时间我决定看一些东西。所以我在 VLC 中打开了一个非常苛刻的 H264 视频(Core2 2.6GHz 的 CPU 时间的 30% 左右),结果发现有撕裂、丢帧、视觉伪像(我认为是之前的结果),尽管音频似乎是美好的。
所以我决定改变 VLC using 的优先级renice,具体地看到 PulseAudio-11我决定把它放在同等水平上,所以我做了sudo renice -11 -p VLC_PROC_#。
同样的事情不断发生,所以我继续将它设置为 -20,但我仍然看到视觉伪影。
所以我想知道,为什么 Linux 实际上没有将 -20 进程优先于一些 0 进程并为其提供所需的任何东西?有什么方法可以真正确定 Linux 中的进程优先级吗?
以防万一,我在这里运行 64 位 Arch,XFCE 作为桌面环境。
编辑:内核编译是在/tmp其中执行的,我有tmpfs它的源代码,并且所有内容都已经在 RAM 中。RAM 使用率甚至没有达到 60%,也没有进行分页操作。
上面详述的场景只是一个测试用例,我更感兴趣的是为什么 Linux 是这样执行的,以及是否有任何方法可以获得真正的优先级。
在top和htop工具中,具有最高实时优先级(从用户态 API 的角度来看为 99)以及调度策略SCHED_RR或SCHED_FIFO优先级的进程(或/和线程,取决于显示设置)显示为RT。
对于所有其他实时进程,优先级显示为由以下定义的数字 p:
p = -userprio -1
Run Code Online (Sandbox Code Playgroud)
我很奇怪,为什么top和htop不显示-100的higest优先级实时进程?
我知道,出于调度目的,Linux 进程具有“nice”值和实时优先级值,并且可以使用nice和chrt命令显式更改这些值。如果用户没有明确设置一个进程的实时优先级,它是如何设置的?
priority ×10
linux ×6
nice ×3
process ×3
cpu ×2
scheduling ×2
arch-linux ×1
command-line ×1
compiling ×1
efficiency ×1
fedora ×1
htop ×1
io ×1
kernel ×1
networking ×1
parallelism ×1
performance ×1
ps ×1
real-time ×1
top ×1