私はLinuxでCFSを学んでいます。だから私はnice値がバックグラウンド(つまりnice)プロセスに低い優先順位を与えることができる方法を学ぶことにしました。
taskset 01 python3 loop.py
2つの端末で2つのCPUプロセスが実行されています。次に、renice -n 19 -p 12954
プロセスのいずれかを選択します。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12963 garyF 20 0 29620 9248 5256 R 49.8 0.1 2:05.64 python3
12954 garyF 39 19 29620 9420 5428 R 50.2 0.1 2:12.68 python3
しかし、良い値が異なっていても、topはまだプロセスが同じCPUシェア(50%)を得るという意味です。これらのプロセスが約5分間実行されたにもかかわらず、TIME +列は各プロセスのCPU時間が似ていることを示しています。良いプロセスについて私が期待している時間の部分は次のとおりです。たくさん通常のプロセスより低く、CPU使用率が低くなります。私は何を逃したことがありませんか?
これは私のものですloop.py
:
#!/bin/python3
from datetime import datetime;
from datetime import timedelta;
import signal;
import sys;
def sigint_handler(signal, frame):
dt = datetime.now() - start_time;
ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds/1000.0;
print('You pressed Ctrl+C!');
print('Time elapsed is ', end='')
print(ms, end='');
print('ms.');
sys.exit(0);
pass;
signal.signal(signal.SIGINT, sigint_handler);
start_time = datetime.now();
val = 3;
while True:
val %= 2;
val += 2;
pass;