swap_pager_getswapspace(nn): failed

自分のためのメモ

Swap領域不足でサーバーが落ちる

最近、Swapが足りないエラーが出てサーバーが落ちてしまうことが結構あります。
その時の /var/log/messages には最初はこんな風にある時を境にSwap足りないというメッセージを延々と出し始め、

Oct  1 01:49:53 xxxxxxx kernel: swap_pager_getswapspace(12): failed
Oct  1 01:49:53 xxxxxxx kernel: swap_pager_getswapspace(12): failed
Oct  1 01:49:53 xxxxxxx kernel: swap_pager_getswapspace(16): failed
Oct  1 01:49:53 xxxxxxx kernel: swap_pager_getswapspace(12): failed

そしてそのうち色々なデーモンを殺し始め

Oct  1 02:16:50 xxxxxxx kernel: swap_pager_getswapspace(4): failed
Oct  1 02:19:44 xxxxxxx kernel: pid 42921 (mysqld), uid 88, was killed: out of swap space
Oct  1 02:20:33 xxxxxxx kernel: pid 742 (clamd), uid 106, was killed: out of swap space

サーバーが落ちます。 “swap_pager_getswapspace(nn): failed” の続きを読む

Mail server is backup MX

自分のためのメモ
大抵の人には役に立たない情報です。

とある事情で、あるドメイン名の全部のユーザーのメールの送信のためだけのsmtpサーバーが必要になって、すでに稼働しているposftfix adminのvirtual domain環境にそのドメイン名を追加登録して全ユーザーの登録をしてssl/smtp-auth なsmtpとして使った時のお話。
“Mail server is backup MX” の続きを読む

SNIを使ったSSL設定

自分のためのメモ

SNIで常時SSLのバーチャルドメインサイトを構築します。
前提は、すでにIPアドレスベースのSSLサイトの設定はできていて、それにSNIでSSLのバーチャルドメインサイトを追加する形です。

実はSNIと言ってもそんなにとりたてて何か特別な作業が必要という訳ではありません。普通にバーチャルホスト80番ポートを443番ポートに変更して証明書だけIPベースと同じように各ドメイン名のを指定してやればそれでOKです。特にひねりはありません。むしろ、昔のIPベースのSSLサイトの時代に「IPアドレス一個にSSLサイトは一個のみ」というのを知らなくて設定ファイルを書いてやってみてうまく動かなくてやっとダメだと分かった時の設定でSNIはうまくいくように作られてます。
“SNIを使ったSSL設定” の続きを読む

無料SSL証明書のLet’s Encryptを使ってみる

WebサイトのSSL化事情

一般的にSSL化したWebサイトを立てる時には二つのハードルがあります。一つは、本来SSL化できるサイトはひとつのIPアドレスでひとつだけ(IPベースのSSL)ということ。もう一つは、正式なSSL証明書を入手するにはある程度のコストが毎年かかるということです。一つ目のハードルは、SNIという手法が開発されて、ひとつのIPアドレスでも複数のSSLサイトを運用できるようになりました。しかし、これはブラウザ側の対応も同時に必要なのでそれが普及するまでしばらく時間が必要でした。二つ目は、有料でも比較的安いSSL証明書が提供されるようになってきています。それを利用すれば年間1,000円程度で済みますし、元々IPベースのSSLでの運用だと使えるホスト(ドメイン名)の数も必然的に限られていたこともあり、コスト的にも許せる程度で収まっていました。

そこへ、最近の「全てのWebサイトのSSL化が望ましい」という流れです。バーチャルドメインで複数のドメイン名サイトを複数のFQDNで運用しているのを全てSSL化するのは有料だとさすがにキツイので困っていたところに出てきたのがLet’s Encryptという無料SSL証明書です。また、SNIが実装されたブラウザが普及してきた(というよりは非対応のブラウザとそのプラットホームが淘汰されてきた)というのもあって、ようやく重い腰を上げたという訳です。 “無料SSL証明書のLet’s Encryptを使ってみる” の続きを読む