标签: nice

流程“好”与“优先”

运行时top,我可以看到这个(缩短的)示例输出:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 4586 ipc-adm+  20   0 1303900 605152  92844 S  30,6 29,3   3:52.88 firefox
 3985 ipc-adm+  20   0  258588 124508  63072 S  12,2  6,0   0:40.04 compiz
 3092 root      20   0  172392  56164  25980 S   6,1  2,7   0:30.13 Xorg
Run Code Online (Sandbox Code Playgroud)

我对两个值感兴趣:(PR优先级)和NI(友好度)。

如果我理解了我已经正确发现的内容,那么两者都会确定一个进程与其他进程相比将获得多少 CPU 时间。但是这些值之间有什么区别呢?

您能否还描述一下如何操纵流程的这些值以及在哪些情况下这可能有用?

process-priority process nice

139
推荐指数
3
解决办法
15万
查看次数

更改正在运行的进程的 niceness(优先级)

是否可以nice使用已知 ID设置正在运行的进程的新级别?

此操作是否需要 root 访问权限,或者只是进程的所有者?

process-priority nice

91
推荐指数
5
解决办法
9万
查看次数

如何查看我的好感度?

有什么办法可以检查我的好lvl吗?我确实尝试过ps,但由于某种原因,输出没有显示列 NI,如果我没记错的话,该列旨在显示 lvl 优先级。

ps -fl -c 

F S UID        PID  PPID CLS PRI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S sebas     9761 26810 TS   19 -  6564 wait   18:07 pts/4    00:00:00 bash
0 R sebas    25389  9761 TS   19 -  5661 -      18:27 pts/4    00:00:00 ps -fl -c
Run Code Online (Sandbox Code Playgroud)

nice ps

42
推荐指数
3
解决办法
4万
查看次数

如何防止我的系统在颠簸(内存不足)时变得无响应?

我有 8GB 的​​内存,但有时我会运行几个虚拟机和足够的 Chrome 进程来使用我的大部分内存。这通常没问题,但有时我的系统开始崩溃,而且我很难在不等待情况好转的情况下从中恢复,因为 UI 大部分时间都被冻结了。

在所有这些情况下,使用我大部分 RAM 的程序可能会被取消优先级。如果 Chrome 或 VM 没有响应,但我的图形环境和终端仍然响应,我可以切换到终端,找到罪魁祸首,然后杀死它。我可以想象像内存的“好”(以便我可以使用 Chrome 和我的 VM)或强制图形环境和我的终端留在内存中而不是交换的东西。

有没有办法确保当我的系统颠簸时 UI 保持响应?

谢谢!

编辑:我仍然对是否有类似记忆的好东西感兴趣,但我刚刚发现我的系统没有任何交换空间。我认为这是因为我开始使用加密的 home 和加密的交换(请参阅Swap not working on clean 14.04 install using encrypted home)。因此,我的系统可能变得没有响应,因为我没有任何交换空间,所以当内存不足时,我的系统无法交换不必要的程序。

swap ram nice 14.04

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

为什么Pulseaudio的进程优先级是-11?

为什么这么低?有时当 cpu 高负载时,Pulseaudio 的声音会变得断断续续。我认为这是因为 Pulseaudio 的进程优先级价值太低。那么,如果它会导致问题,那么为什么默认情况下它如此之低。

pulseaudio process-priority nice

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

没有root权限的好命令

我需要运行dosemunice --20从脚本。问题是:负值只能与 sudo 一起应用。

你知道有什么方法可以在nice没有脚本的情况下运行命令sudo或直接nice --20 dosemu从脚本运行吗?

cpu-load nice

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

如何按名称更改进程的好坏

Java 进程正在杀死我的计算机(Intel i3,8GB RAM)。它接管了整个 CPU,系统开始挂起。我试图改变nicenessjava 进程,但我必须一直控制它,这并不总是可能的。因此,一开始我尝试构建一个命令来niceness按名称更改进程。结束了这样的事情:

ps ax -o pid,comm | grep java | awk '{print $1}' | tr "\n" " " | renice -n 5 -p
Run Code Online (Sandbox Code Playgroud)

但它看起来不起作用。我不知道下一步要去哪里。Bash 脚本可能吗?每次都运行它cron还是运行它?或者,还有更好的方法?watchx

bash cron process nice

7
推荐指数
2
解决办法
4990
查看次数

nice 值会影响交换吗?

如果系统没有足够的 RAM 用于所有内容,内核nice在决定换出哪些内容以减少内存压力时是否会考虑该值?

swap nice

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

如何为从 gksudo 运行的命令提供参数?

我想为gnome-system-monitor具有 root 访问权限的运行添加一个快捷方式,并且具有非常高的优先级。

我的快捷方式命令是:

gksudo -k -u root nice --20 gnome-system-monitor
Run Code Online (Sandbox Code Playgroud)

但这给出了错误:

gksudo: unrecognized option '--20'
Run Code Online (Sandbox Code Playgroud)

我怎么能说--20是 的一个选项nice,不是gksudo

这是我想要的最好的命令吗?

command-line nice gksudo

6
推荐指数
1
解决办法
1777
查看次数

如何在执行最高命令时改变“niceness”?

我知道我可以使用以下命令更改友好度:

renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
Run Code Online (Sandbox Code Playgroud)

但是如果我可以在扫描顶部的进程时这样做会方便得多。

command-line shortcut-keys process-priority nice top

6
推荐指数
1
解决办法
1034
查看次数