Linux

Linux - 提取 Tar 顯著降低伺服器速度

  • April 29, 2018

我有一個具有 12 TB 儲存空間的 Web 伺服器(規格如下)。我正在將打包在 TAR 中的大量 csv 文件移動到伺服器,然後在伺服器上提取。問題是在提取 TAR 文件時,伺服器變得非常緩慢,幾乎無法使用。我沒有做任何瘋狂的事情,通常一次執行 2-4 次提取。但即使只執行一兩個也會顯著降低伺服器速度。這對我來說將是一個大問題,因為我將上傳和提取 TAR 文件,而人們會想要使用該網站,而現在我不能同時做這兩個。我對 Linux 和這個社區真的很陌生,所以如果我能提供更多有用的資訊,請告訴我,我會更新文章。

我猜磁碟是瓶頸?

如果是這樣,我可以限制 tar 提取磁碟的使用或優先考慮其他所有內容嗎?

輸入/輸出統計:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          0.15    0.56    0.40   14.83    0.00   84.06

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00       1907          2
sda             155.19       787.23      1484.89  604305327 1139862930
sdb             154.49       765.39      1493.48  587544552 1146456242
sdc             153.82       759.91      1485.53  583338594 1140353662
md4            1041.52      1861.40      4425.45 1428880721 3397151904
md3               4.78        46.70        11.08   35850458    8501904
md2               0.00         0.00         0.00       3641         98

最佳:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
7194 root      20   0       0      0      0 D   5.0  0.0   0:17.38 
13811 user1  20   0  121272   1620   1464 D   4.3  0.0   0:02.20 tar

伺服器規格:

英特爾凌動 C2750,8c/8t - 2.4GHz /2.6GHz,16GB DDR3 ECC 1600 MHz

ionice命令是“ nicefor IO”,將執行具有不同 IO 優先級的命令,因此它將(或不會)讓給其他想要使用磁碟的程序。

ionice -c 3 tar xf ...

將以“空閒”優先級執行該tar命令,因此它僅在其他人不想使用時才使用磁碟。這將防止它干擾其他程序。

在這種情況下,並行執行多個提取不會有太多好處。tar 文件只是連接數據和一些標頭檔,所以除了讀寫之外沒有什麼可做的。如果您正在處理不同的磁碟或某些 SSD,它可能會很有用。

引用自:https://unix.stackexchange.com/questions/437977