mymemcalcでmy.cnfの設定が正しいか確認する

mymemcalc というスクリプトを使うと、MySQLの設定値を見て必要とするメモリ量を教えてくれます。

とりあえず昔から動いているサーバの上で使ってみました。


$ mysql -e 'show variables' | python mymemcalc.py
*** minimum memory requirement fomula ***
[required_memory] = [global_buffers] + ([thread_buffers] * [max_connections])

*** result ***
[required_memory] = 1.6G(1690304512)

[global_total] = 251658240
  query_cache_size = 0(0)
  innodb_buffer_pool_size = 128.0M(134217728)
  innodb_additional_mem_pool_size = 8.0M(8388608)
  innodb_log_buffer_size = 8.0M(8388608)
  max_heap_table_size = 64.0M(67108864)
  key_buffer_size = 32.0M(33554432)

[thread_total] = 11239424
  binlog_cache_size = 32.0K(32768)
  sort_buffer_size = 2.0M(2097152)
  max_allowed_packet = 8.0M(8388608)
  thread_stack = 192.0K(196608)
  read_rnd_buffer_size = 256.0K(262144)
  read_buffer_size = 128.0K(131072)
  join_buffer_size = 128.0K(131072)

[max_connections] = 128

あれ…このサーバ、メモリ1GBしかつんでないのに必要メモリが1.6Gって…あかーん!

Macで動く KeePassHttp を作った!Autotypeできた!

2011年5月9日に、 MacでKeePassのAutotypeを使いたい というエントリを書きました。
MacでKeePassを使おうとすると、Monoを入れないといけなくて面倒な上に動作が不安定。KeePassXというアプリは安定して動作するけど、AutoTypeがないため、ログイン画面がでるたびにKeePassXを呼び出してダブルクリックしないといけなくて面倒でした。

それから約1年半がたち… AutoType に再び挑戦し、実現する事ができました。

まず、 keepass v1 DB ツール – そこはかとなく書くよ。 を使って、Python上から KeePass DBにアクセスできるようにしました。
次に、Pythonでsocketを使ったシンプルなHTTP Serverを立てて、リクエストに応じて KeePass DBの値を返せるようにしました。
その後、Apple Scriptを使ってChromeを操作して値を入れようと思っていたのですが、 Chrome Web Store – ChromeIPass という Extension を教えてもらい、「あれ?この Extension のリクエストに Windows版のKeePassHttpプラグインと同じレスポンスを返せばスマートに解決するんじゃね?」というわけで、HTTP Server部分を作りなおして ChromeIPass のリクエストに答えられるように書きなおしたものがこちらになります。

python-keepasshttp

ちょっとセットアップが面倒なので、py2appでなんとかできないかなーと思っているのですが、MacでAutoTypeしたいという方はこれを使ってみてはいかがでしょうか?