狠狠撸

狠狠撸Share a Scribd company logo
Cookbook Recipeでの
サービス制御方法についての
ご相談
@takipone 大瀧隆太
? クラスメソッド株式会社 在籍
? 普段はAWSいじってます
Chef Casual Talk #2 2013/05/20
SquidのRecipeでトラブル発生
初回の実行は通るのに、2回目以降の実行後数分するとsquidプロセ
スが落ちる現象に
[2013-05-20T03:52:33+00:00] INFO: service[squid] reloaded
- reload service service[squid]
[2013-05-20T03:52:33+00:00] INFO: Chef Run complete in 21.709786306 seconds
[2013-05-20T03:52:33+00:00] INFO: Running report handlers
[2013-05-20T03:52:33+00:00] INFO: Report handlers complete
Chef Client finished, 7 resources updated
[2013-05-20T03:52:33+00:00] DEBUG: Exiting
[ec2-user@ip-XX-XX-XX-XX ~]$ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 0 *:webcache *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
[ec2-user@ip-XX-XX-XX-XX ~]$ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
原因は、squidのシャットダウンが
初期設定では30秒かかること
? /etc/init.d/squidのrestartは、stop,startしかしない。
? かつ、stopはsquidプロセスのシャットダウンを確認しない。
1. 新プロセスのstart時には、まだstopしていない旧プロセスが
残っているため、ファイルディスクリプタが開けられないエラー
が発生、起動に失敗する
2. 30秒すると、旧プロセスも終了する
3. そして誰もいなくなった…
View /etc/init.d/squid
:
restart() {
stop
start
}
:
ワークアラウンドを考えた
? ワークアラウンド1 :
30秒の待ち時間はsquid.confの”shutdown_lifetime”というコ
ンフィグで制御可能
? 今回はこれを0にし、乗り切った
? ほかの解決策はありませんか? (思いつき)
? ワークアラウンド2 :
Serviceリソースにrestart時に30秒sleepする記述を追加する
とか
? ワークアラウンド3 :
/etc/init.d/squidをtemplate/data_bagでいじっちゃうとか?
ベストプラクティスは?
教えてください!
? どれがイケてますか?
? もっとベターな解決策ありませんか?
? 同じようなトラブル/悩みってよくあるんですか?
今回の成果
? テストツールが流行っているけど、Specテスト、
受け入れテストでもすり抜けてしまいそうなケー
スがあることを知った。

More Related Content

Cookbook Recipeでのサービス制御方法についてのご相談