Kat*_*age 1 unix linux bash terminal
我想加载同时使用ionice(I / O优先级)和nice(进程优先级)来启动程序。
我在网上看到这条线的各种变化:
ionice -c2 -n7 nice -n19 [my program to run]
Run Code Online (Sandbox Code Playgroud)
(要么)
nice -n19 ionice -c2 -n7 [my program to run]
Run Code Online (Sandbox Code Playgroud)
每个人都列出了它,没有任何详细说明。
我的问题是... ionice(第一个程序)设置好(第二个程序)的优先级,如何影响第三个程序(我要运行的程序)?当一个程序启动另一个程序时,优先级是否可传递?
使用htop进行的快速测试实际上可以确认它是否正常运行。在这两种情况下,程序运行都会具有19种优点-太好了,这就是我们想要发生的事情。但是如何运作?
当您启动程序时(假设它是一个简单的单进程程序),您将有1个进程在运行您的程序。到目前为止,一切都很好。
nice是一个特殊的程序,它以经过调整的优美程度启动另一个程序。当您启动nice -n 19 someprogram系统(实际上是外壳程序)时,将启动一个新进程来执行nice,但是该新进程又不会someprogram在一个新进程中执行:它用一个新进程映像()替换了当前nice进程映像(someprogram)。
与相同ionice。因此,nice -n19 ionice -c2 -n7首先启动nice,先做它的事情,然后开始ionice(替换自己的过程映像),再做自己的事,然后终于开始someprogram(替换它自己的过程映像),从而导致单个进程调整了CPU和IO的美观度。
话虽这么说,由于子进程继承nice了它在派生时父级所拥有的任何值,因此如果nice/ ionice确实分叉了子进程,则仍然是正确的。
因此:
当一个程序启动另一个程序时,优先级是否可传递?
是的,在两种情况下(过程映像替换和子过程创建)。
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |