Linux
Linux - 提取 Tar 顯著降低伺服器速度
我有一個具有 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
命令是“nice
for IO”,將執行具有不同 IO 優先級的命令,因此它將(或不會)讓給其他想要使用磁碟的程序。ionice -c 3 tar xf ...
將以“空閒”優先級執行該
tar
命令,因此它僅在其他人不想使用時才使用磁碟。這將防止它干擾其他程序。在這種情況下,並行執行多個提取不會有太多好處。tar 文件只是連接數據和一些標頭檔,所以除了讀寫之外沒有什麼可做的。如果您正在處理不同的磁碟或某些 SSD,它可能會很有用。