是否可以设置 CPU 负载或 RAM 以实现更好的多任务处理?因为当我复制文件或 tar/untar 一些较大的文件时,操作系统会因此操作而变得非常慢。
谢谢。
操作系统Ubuntu 18.04。
硬件CPU i7、8GB RAM、SSD。
更新
当tar zxvf SOME_BIG_FILE.tar.gz
(文件约3GB)时,由于该过程无法运行,使用ALT+TAB在窗口之间切换需要2秒,键盘和鼠标会在5秒的间隔内卡住。
CPU 不是那么高(有时某些进程占用更多时间,但一切正常)。
Tasks: 303 total, 1 running, 251 sleeping, 0 stopped, 1 zombie
%Cpu(s): 20,2 us, 5,8 sy, 0,0 ni, 64,8 id, 7,2 wa, 0,0 hi, 1,9 si, 0,0 st
KiB Mem : 8031476 total, 174684 free, 6087096 used, 1769696 buff/cache
KiB Swap: 3906556 total, 2917856 free, 988700 used. 1113008 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6916 hosek 20 0 4912 840 776 D 82,4 0,0 0:17.75 gzip
6915 hosek 20 0 42152 3536 3256 S 13,6 0,0 0:03.24 tar
148 root 20 0 0 0 0 S 4,7 0,0 7:44.14 kswapd0
6917 root 20 0 0 0 0 D 2,3 0,0 0:00.12 kworker/u8:3+fl
1964 root 0 -20 0 0 0 I 1,3 0,0 0:08.80 kworker/1:1H-kb
而且记忆力似乎也还不错。
total used free shared buff/cache available
Mem: 8031476 6026968 169716 540912 1834792 1103756
Swap: 3906556 927004 2979552
我猜想这与磁盘进程有关?或者我如何才能找出 brownie?
答案1
看来您遇到了磁盘 IO 优先级问题。
您可以为执行磁盘操作的进程指定最低优先级。
ionice -c 3 tar zxvf SOME_BIG_FILE.tar.gz
从man ionice
:
ionice [-c class] [-n level] [-t] command [argument...] OPTIONS -c, --class class Specify the name or number of the scheduling class to use; 0 for none, 1 for realtime, 2 for best-effort, 3 for idle.
另一个可能的解决方案是使用低延迟内核,这将使资源密集型操作变得更慢,但会提高响应能力。参考。