复制或解压文件时操作系统非常慢

复制或解压文件时操作系统非常慢

是否可以设置 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.

另一个可能的解决方案是使用低延迟内核,这将使资源密集型操作变得更慢,但会提高响应能力。参考

相关内容