當前進程:提取從tar.gz的文件,不接觸磁盤
- 我有一個
tar.gz
文件。 (其實,我有大約2000人,但那是另一回事)。 - 我建立一個臨時目錄,提取
tar.gz
文件,顯示100,000個小文件(每個大約600字節)。 - 對於每個文件,我將它編入一個處理程序,將其導入另一個分析程序並保存結果。
我正在使用的機器上的臨時空間幾乎無法同時處理這些進程中的一個,不必介意它們默認發送的16個(超線程雙核四核)。 我正在尋找一種方法來執行此過程而不保存到磁盤。我相信單獨使用tar -xf $file -O <targetname>
提取文件的性能損失會令人望而卻步,但它可能是我堅持的。
有沒有辦法做到這一點?
編輯:既然兩個人已經犯了這個錯誤,我要澄清:
- 每個文件代表了一個時間點。
- 每個文件都單獨處理。
- 一旦處理完畢(在這種情況下,傅里葉分析中的變體),每個都會給出一行輸出。
- 這個輸出可以結合起來做一些事情,比如隨着時間的推移自相關。
EDIT2:實際代碼:
for f in posns/*; do
~/data_analysis/intermediate_scattering_function < "$f"
done | ~/data_analysis/complex_autocorrelation.awk limit=1000 > inter_autocorr.txt
什麼是未壓縮的文件的總大小?你有多少ram? –
100K文件* 4KB最小文件大小= 400MB。我有16 GB,所以16不會有太多問題。 – zebediah49
那麼,我打算告訴你使用一個ramdisk,但@Harald Brinkhof已經做了:) –