« 2007年04月 | メイン | 2007年06月 »

2007年05月29日

再会

先週、前の会社に勤めていたときに出会った友人から、突然5年ぶりぐらいで連絡がきました。
なんと、以前載せたマイチャリROSSO号の写真を見て、はがれかけたシールで僕だとわかったそうです(笑)
ブログ、書いてみるもんですねぇ。
会社のホームページを見て連絡してくれるなんて、ありがたいことです。

さっそく週末に飲みに行き、お互いの近況やらロックな話やら仕事のマジメな話やらをたくさんして楽しかったです。
というか、飲みすぎて、土曜日はグダグダでした。
でも、また飲みましょう。
いつか一緒におもしろい仕事ができたらいいですね。

2007年05月25日

MySQL メモリ使用量の計算式

MySQLで使用するメモリの計算式は次のとおりです。

max_connections *
(sort_buffer_size
  + join_buffer_size
+ read_buffer_size
  + read_rnd_buffer_size
+ net_buffer_length
  + max_allowed_packet) <-- カッコ内は1接続あたりの使用メモリ

+ key_buffer_size
+ query_cache_size
+ innodb_buffer_pool_size
+ innodb_additional_mem_pool_size
+ innodb_log_buffer_size

データベース専用サーバであれば、この値が搭載メモリの8〜9割になるように設定するとよいでしょう。
Webサーバやアプリケーションサーバを兼ねるサーバなら、用途に合わせてその割合を減らします。

なお、32bit Linuxでは、1プロセスに割り当てる最大メモリサイズは4GBであるため、上記で4GBを超えるような設定をすると、MySQLがエラーして起動しません。

(2010.04.16追記)
スレッドバッファ分のmax_allowed_packetについては、メモリ使用量の計算式としては適切ではないので削除し、net_buffer_lengthを追加しました。
通信時のバッファについては、接続時にnet_buffer_lengthの値分確保されます。
この値はデフォルトでは16KB。
通信時に必要に応じて、最大でmax_allowed_packetまで拡張されます。
max_allowed_packetはデフォルトで1MB。


また、myisam_sort_buffer_sizeもスレッドバッファとして加算する方もいらっしゃるようです。
これは、MyISAMでREPAIR TABLE, CREATE INDEX, ALTER INDEX文を実行したとき使われるバッファで、デフォルトは8MB。
全文検索エンジンTritonnを使用する場合はなんと1GBとすることが推奨されています。
ですが、同時接続100のとき合計で100GB使用するかというと、そうではないので、接続時に必ずmyisam_sort_buffer_size分を確保するわけではないようです。

ということで、考え得る最大値という意味では、max_allowed_packetやmyisam_sort_buffer_size分を加算することは間違いではないのですが、すべての通信接続でこれらの値分を確保するわけではないので、パラメータチューニングにおける計算式からは削除しました。

2007年05月02日

引越し

少し前のことになりますが、4/21(土)にアンタス札幌本社の引越しがありました。
2004年11月に前オフィスに初めて入ったときの札幌本社在籍メンバーは4人。
みんなで一生懸命机やキャビネットを組み立てたことを思い出し、胸がいっぱいに、、、なることはなかったのですが、あれから2年半で本当に人が増えたな〜と思いました。

さて、引越し自体は9時から搬出が始まり、16時ごろには搬入が終了。
僕が担当したネットワークや電源、サーバまわりの移設もみなで作業して特に問題なく完了しました。
IPアドレスの変更が少なかったのも、トラブルが少なかった要因ですね。
あ、1台電源まわりのトラブルで起動しなくなったPCサーバがありましたが。

新しいオフィスはこちら
より中心部に近くなり、周りは前のオフィスとはまた違った雰囲気です。
昼食のお店も新規開拓し直しですが、それもまた楽しんでやっています。
そんな感じで、しばらくはまた新鮮な気持ちで仕事ができそうです。