前回まではmod_proxy_balancerで中〜大規模サーバーを運用するときの勘所をお話ししてきました。 これ以外にもmod_proxy_balancerな中〜大規模サーバーで気をつけるべき点はあります。それがiptablesとip_conntrack。 外部に直接晒されているサーバーはセキュリティーを確保するためにiptablesなどのファイヤウォールを導入しているかと思います。アクセス数がある程度以上になってくると、そのファイヤウォールが思わぬ足かせになってしまうと言うお話です。 iptablesはパケットフィルタリングを行うソフトウェアです。PCに入ってきたり、逆にPCから出て行くパケットを監視し、ルールに従い適宜フィルタリングを行います。 さて、iptablesでは、関連したパケットを追跡するために/proc/net/ip_conntrackというファイルを作り、パケットの情報
鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正
Recently I was working on a refactor of one of my CPAN modules which, among other things, involved changing its name from Test::A8N to the specific Test::Story. Doing so made me think about the process I usually go through when I consider releasing a CPAN module. First, let me explain something about myself: I don’t like tedious or repetitive tasks. I hate having to do the same thing over and ov
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く