Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Shell で制限付き並列処理をしよう

1,312 views

Published on

Published in: Technology
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... (Unlimited)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Shell で制限付き並列処理をしよう

  1. 1. USP 友の会・シェル芸勉強会 LT - 2014/02/15 Shell で制限付き並列処理をしよう 日本 GNU AWK ユーザー会 斉藤 博文 hi_saito@yk.rim.or.jp @hi_saito Page 1 http://gauc.no-ip.org/awk-users-jp/
  2. 2. USP 友の会・シェル芸勉強会 LT - 2014/02/15 なぜ制限を付けるのか?  ImageMagick で 1,000 枚の PNG 画像から アニメーション GIF を並列処理で作成。  メモリを消費してしまい、スワップで操作 不能に陥る。orz  何でこんなことをしていたかは秘密で す。w 何らかの制限を付けないと同じミスが出る Page 2 http://gauc.no-ip.org/awk-users-jp/
  3. 3. USP 友の会・シェル芸勉強会 LT - 2014/02/15 Shell で並列処理  bash 前提なので、数値演算は (( と )) で C 言語っぽく。 for (( i = 1; i <= 1000; i++ )); do sleep 2 & done 処理内容によっては大いに不安が残る Page 3 http://gauc.no-ip.org/awk-users-jp/
  4. 4. USP 友の会・シェル芸勉強会 LT - 2014/02/15 ここで問題!  メモリを無視して指定ジョブ数だけジョブを 投入する?  コア数を無視してメモリを消費しきれるだけ ジョブを投入する? どちらがいいのだろうか? Page 4 http://gauc.no-ip.org/awk-users-jp/
  5. 5. USP 友の会・シェル芸勉強会 LT - 2014/02/15 ジョブ数に制限をかける MAX_JOBS=10 for (( i = 1; i <= 1000; i++ )); do sleep 2 & CJOB_NUM=$(( $(ps --ppid $$ | wc -l) - 1 )) while :; do CJOB_NUM=$(( $(ps --ppid $$ | wc -l) - 1 )) if (( ${CJOB_NUM} < ${MAX_JOBS} )); then break fi done done 本当に CPU 律速しているのだろうか? Page 5 http://gauc.no-ip.org/awk-users-jp/
  6. 6. USP 友の会・シェル芸勉強会 LT - 2014/02/15 メモリに制限をかける MEM=$(free -b | awk '/Mem:/ {print $2}') MAX_MEM=$(awk '{print int($0 * 0.3)}' <<<${MEM}) for (( i = 1; i <= 1000; i++ )); do sleep 2 & CJOB_MEM=$(ps -o rss --ppid $$ | awk 'NR>1 {s+=$0} END{print s}') while :; do CJOB_MEM=$(ps -o rss --ppid $$ | awk 'NR>1 {s+=$0} END{print s}') if (( ${CJOB_MEM} < ${MAX_MEM} )); then break fi done done いわゆる CPU バウンドな処理 Page 6 http://gauc.no-ip.org/awk-users-jp/
  7. 7. USP 友の会・シェル芸勉強会 LT - 2014/02/15 良く使う並列処理  xargs  ジョブ数のみの指定  make  ジョブ数と Load Average の指定が可能 メモリに制限をかけるようなものってないもの か? Page 7 http://gauc.no-ip.org/awk-users-jp/
  8. 8. USP 友の会・シェル芸勉強会 LT - 2014/02/15 まとめ  ジョブ数やメモリに制限をかけるような Shell スクリプトがあまりなかったので作ってみた よ。  もちろん、両方の制限をかけても良いよね。  I/O に制限をかけても面白いけど、良い方法 が見当たらなかった。 どちらが良いかは要件次第 Page 8 http://gauc.no-ip.org/awk-users-jp/

×