Browse Month: May 2011

GNU Parallel を本番環境で使ってみました

GNU parallel を本番環境で使ってみました。
本番環境では、10 台程度ある Apache のウェブサーバのアクセスログを mod_log_rotate で 1 時間ごとに出力して、バッチ処理のサーバで集めています。

最初は、シェルスクリプトで、次のようにしていました。
次の例はウェブサーバが s1 〜 s10 まであって、$LOG_DIR/$LOGFILE に 1 時間ごとに出力したアクセスログがあると想定しています。当然ながら、下記のシェルスクリプトの実行ユーザで対象のサーバへ SSH 経由に接続できるものと想定しています。


for s in s1 s2 s3 s4 s5 s6 s7 s8 s9 s10; do
ssh -q $s "test -f $LOG_DIR/$LOG_FILE"
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
rsync -az -e "ssh -q" $s:$LOG_DIR/$LOG_FILE-$s
fi
done

対象のサーバごとに順番に rsync しているため、対象サーバが増えるごとに rsync する時間がかかってしまいます。
10 台の場合、約 1 分 30 秒ほどかかっていました。
そこで、「GNU Parallelがすごすぎて生きるのがつらい – As a Futurist…」を参考にしながら、次のように並列で rsync するようにしてみました。


parallel -j +0 'rsync -azq -e "ssh -C -c arcfour -q" {}:$LOG_DIR/$LOG_FILE-{}' ::: s1 s2 s3 s4 s5 s6 s7 s8 s9 s10

GNU Parallel を使うとワンライナーで済んでしまいます。実際には、rsync に失敗することがあるので、3回ほどリトライ処理を行っています。
「-j +0」の部分は、お使いのサーバの CPU コア数などによって調整してください。
これによって、今まで 1 分 30 秒かかっていましたが、GNU Parallel を使ったバージョンだと 10 秒程度で終わるようになりました。これなら、ウェブサーバが増えても処理時間の延びを減らすことができそうです。

qpstudy #06 に行ってきた

qpstudy #06 に行ってきました。前回は行けなかったので、久しぶりでした。

本編 LT で、フリーランスについて話してきました。初めての LT だったので、けっこう緊張しましたが、ustream で自分の LT を振り返って、自分で学べることも多かったです。

おもに言いたかったことをまとめると、次のようになります。

  • 出勤、遅刻はないし、自分で自分のスケジューリングできるので、けっこういいよ(自分次第でいつでも、好きな場所に行けるし、仕事する時間を自分にあった時間に自由にすることができるよ)
  • 自分で受けた仕事は、当然ながら自分の責任なんで分かりやすくよいよ
  • 有給なんてものはないから、自分で健康管理を強制的にするよ(会社員で休みがちは人はフリーランスになるとよいと思う、毎日健康でいられるから)
  • 大規模なことはなかなかできないけど、自分次第で中規模くらいのインフラならを扱うことができるよ
  • 会社員より、より自分の相場価値(値段)が分かるよ(なので、フリーランスになっておけば、転職するときにも希望年収はよりはっきりすると思う)
  • 税金、保険、まわりはけっこう大変だよ(手当も薄いし、健康診断は自主的にやらないとね)

ということで、フリーランスになってみたいという興味のある人の参考になれば、とても幸せです。

次回は、技術的でかつ実践的なビアばっしゅ LT をしたいと思う。

 

あと、フリーランスになるとき、次の本が個人的に参考になったので、紹介しておきます。仕事で成長したいと思う人には、必読に本だと思います。

 

仕事で成長したい5%の日本人へ (新潮新書)
今北 純一
新潮社
売り上げランキング: 10431

CentOS 6 の近況

CentOS 6 がそろそろリリースされそうな今日この頃いかがお過ごしでしょうか?

CentOS 6 の近況について、JULY さんが本家のリリースアナウンス用の annoucement や開発用の devel のメーリングリストに流れているメールを詳しく調査した内容が、「ちょっと違う印象なんだけど… – JULYの日記」として公開されていますので、CentOS に興味のある人は見てみるといいでしょう。

CentOS 6 は、現在 QA フェースにあるようで、スケジューリングのカレンダーが公開されています。
このカレンダーによると、次のようなスケジュールになるようです。

2011年5月27日(金):QA 用の ISO イメージを作成
2011年6月3日(金) :QA 終了、内部のミラーサイトへの同期開始
2011年6月6日(月 ):外部のミラーサイトへの同期終了

ということで、RHEL6 のリリースから約半年後、ようやく CentOS6 がリリースされるようです。来月上旬には使えるようになりそうです。

CentOS6 がリリースされたときには、RHEL6 と同様のはずですが、新機能のレビューなどを公開できたらいいと思います。

 

2011/06/05 追記: 次のスケジュールに延期されました。

2011年6月10日(金):内部ミラーサイトへの同期開始

2011年6月13日(月):外部ミラーサイトへの同期開始

2011/06/11 追記: テストの結果不具合があった様子で、1週間延期されています。確実に進展しているようなので、今月中に出るといいですね!

2011年6月16日(木):内部ミラーサイトへの同期開始

2011年6月20日(月):外部ミラーサイトへの同期開始

2011/07/06 追記: 現在、外部ミラーサイトへ同期を開始したことです。ようやくようやくリリースされるようです。今後の CentOS コミュニティの動向には注目していく必要がありそうですね。

2011年7月3日(日): QA 終了、内部ミラーサイトへの同期開始

2011年7月5日(火): 外部ミラーサイトへの同期開始

Update – 7/5 | Open Atrium の原文

The os/ and isos/ trees have been synced out to the internal mirror system. updates/ are now signed and should be on their way to the QA machines and also being sync’d out to the internal mirrors along with the latest updates to the ISOs (since a few things have been fixed since the initial push).

Once we go through QA on the updates/ and latest ISOs, the trees will be opened up for public mirrors to pull down. QA here will be fast since we’ve already done a lot of testing on the updates/ — the only changes we’re looking out for in updates/ are the package signatures and the deltarpm information added to the updates repo. We should be able to get through this today and give the go-ahead for syncing to external mirrors.

It’s my understanding that syncing to external mirrors usually is left for a day or two to ensure that enough mirrors have the packages before opening it up for download.

 

第三回ウェブサーバ勉強会で話してきました

先月になりますが、行われた第三回ウェブサーバ勉強会で話してきました。
テーマは、個人的に前々から使ってみたいと思っていた mod_security で、超入門編です。分からないところがいくつかあってすいません。。。
個人的な想像よりも、mod_security かなり複雑な様子なので、しっかり習得する時間を作る必要がありそうです。

また、その後の懇親会で、次回のテーマがざくっと決まったので、次回も楽しみです。
ウェブサーバ勉強会は、参加者が全員発表するという珍しいスタイルの勉強会ですが、主催者の oranie さんが教えてもらうという立場でやっている緩い勉強会なので、興味のある方は参加してみましょう!