TumblrPocketEC2でMySQLを走らせていて、何度かMySQLが落ちるという事態が発生しました。場合によっては(主にお金の問題で...)microインスタンスを商用に使う場合もあります。いうことで原因を探りにログをあさってみたところ、どうやら、MySQL自体は生きているものの、InnoDBストレージエンジンがメモリ不足で落ちている模様です。確かに、インストールしたままで動かしていたこともあり、また、microインスタンスの総メモリは613MBなので足りなくなってもおかしくはありません。そんな時、「確かMySQLの想定メモリ使用量を計算する方法があったなあ」と思い出したので、そもそも計算上どうなのよ、というのを再確認しようと思い立った次第です。2MBとなっています。http://dev.mysql.com/doc/refman/5.1/ja/innodb-configuration.htmlこの計算式でざっくりデフォルト値を計算すると、だいたい400MBくらいになります。O’Reilly本の計算式に基づくとhttp://rental.off-soft.net/323.htmlということで1GBくらい、という計算になっているようです。#そういえばこの本、手元にもあった(笑)。そもそもmicroインスタンスにApacheなどWebサーバとして最小限のパッケージを入れて動かしている状態で、MySQLが動いていなくても既に300MBくらいは使用しています。v5系リファレンスの計算通りだとしても足りないわけです。値を減らせば、メモリの使用量は減ります。max_connections」の部分で100倍されているからです。max_connections=10と追加することになります。レスポンスには影響が出ます。これ以上のレスポンスを求めるのであればもっと大きいインスタンス使ってね、ということなわけですね。#そこんとこどうにかなりませんか、と問われてもさすがにどうにも...。技術担当取締役を中心に技術者が書いております。プログラミング・サーバー/クラウド技術などについての小ネタから、システム化にまつわるあれこれや、プログラマー教育、そこから発生する様々な考え方などまでご紹介。