我如何明确地分配资源(从CPU和物理内存)到特定的一方如networking或进程。
谢谢
一般而言,相对于系统的其他部分,进程将尽可能多地占用CPU和networking带宽。 就我所知,您不能像使用虚拟机一样明确地为一个进程提供一定的CPU速度。
你可以做的是调整进程的调度优先级,使用“nice”,但是,正如Crankyadmin提到的那样。 根据“好”的规模,程序从19(最低优先级)运行到-20,最高优先级,程序通常运行在0。
请注意,非root用户默认情况下只能在19-0范围内调整他们的程序。 只有超级用户可以安排低于0的优先级(在/ etc / profile中使用ulimit来调整这个默认值,但只有在你知道你在做什么的时候才可以)。
要在一个特定的级别运行一个新的进程,请执行
$ nice -n 10 pwd /home/msimmons
这个命令运行在10级。$表示这是一个普通的用户。 当你试图设置一个更好的水平时,会发生什么情况:
$ nice -n -20 pwd nice: cannot set niceness: Permission denied
现在,作为根,我们成功了
## nice -n -10 pwd /root
要改变已经运行的进程的好级别,请使用“renice”。 所以如果我想让我的Firefox会话更快(愚蠢的想法),我会这样做:
renice -10 <firefox-PID>
小心这样做。 每当一个进程产生一个subprocess时,该subprocessinheritance父进程的良好级别。 这意味着,如果firefox(在我的情况下)疯狂,系统可能会去与它。 这就是为什么用户可以改变的最大优先级是0。
小心。
ulimits和不错:D
cpusets是一个相对较新的Linuxfunction,我还没有玩过,但它听起来很有趣。 这里有一些联系: