Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

寫 shell script 的一些平行處理工具

Posted on 2015 年 9 月 16 日2021 年 3 月 12 日 By 日落 在〈寫 shell script 的一些平行處理工具〉中有 4 則留言

最近在處理數十 TB 的 HTTP server log 有感,記錄一些可以拿來做分散式運算的工具以及語法 (參數)。

pigz

gzip 一直是你的好工具,特別是儲存空間放在網路上時,可以大幅的減少讀取、寫入資料時所需要的 throughput。不過 gzip 一次只會用到一個 CPU core 壓縮資料,所以有人寫了 pigz ,在壓縮時建立多個 thread 同時運算。

還有不少針對 gz 的工具可以使用,像是:zcat、zgrep 和 zless (這超神奇,其實打 less 好像就會自動偵測是不是 gz 了  XD)

parallel

之前的筆記參考一下即可。

sort

排序大量資料也是會耗掉相當多的時間,幸好 sort 內建平行運算功能,只要加個參數即可。

$ sort --parallel=8 -S 4G unsort.list > sorted.list

「–parallel」可以指定要同時多少資源做排序,而「-S」則是設定要使用多大的記憶體來做排序。

xargs

感謝 Joe Horn 和 Wen-Shih Chao 提供指點,xargs 也有 parallel 的功能。使用「-P」參數就可以讓 xargs 自動做平行處理。

ls *.log | xargs -P 8 grep PATTERN

目前最常用的是這幾個,其他的就待以後用到慢慢補上。若有更好的做法也歡迎分享~

Tags:Bash, Linux, 分享, 資訊學習

文章導覽

Previous Post: 語音通訊服務之差異與比較
Next Post: 同時追蹤多個 log 檔

Comments (4) on “寫 shell script 的一些平行處理工具”

  1. Joe Horn表示:
    2015 年 9 月 16 日11:24

    xargs 很常見…

    回覆
  2. Max表示:
    2015 年 9 月 16 日19:10

    謝謝日落 🙂

    回覆
  3. yen3表示:
    2015 年 9 月 17 日01:32

    xargs -P ?

    回覆
  4. 日落表示:
    2022 年 7 月 19 日13:00

    再補一個。
    xz 在 v5.2 以後,也可以支援多 thread 壓縮。但是如果使用 -9 則會維持單執行緒來提高壓縮率。

    回覆

發佈回覆給「yen3」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.