Error occurred during initialization of VM

Linuxに、javaとTomcat6とMySQL5をインストールして、
TomcatとMySQLを起動。

Tomcatをshutdownすると下記のエラーが

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

終いには、
java -Xmx16M -version
なんてコマンドをたたくだけで、上記のエラーが出るように。。。

で、
MySQLを切ってから、
Tomcatをshutdownするとエラーが今のところ出なくなったので、
当面は、これで誤魔化すことに。
(Tomcat再起動するだけで、MySQL再起動する羽目になるんだけど)

------------------
で、調べたこと。

Linuxが詳しくないけど
psコマンドとtopコマンドを見ても
あんまりメモリ食ってないような気がするんだけど。

①Tomcatのメモリ
Tomcatは、環境変数CATALINA_OPTSでJavaの起動オプションを以下のように変える
#!/bin/sh
CATALINA_OPTS="-server -Xmx64M"
export CATALINA_OPTS

②MySQLのメモリ
MySQLのメモリは下記の計算で分かるよう。
max_connections *
(sort_buffer_size
  + join_buffer_size
+ read_buffer_size
  + read_rnd_buffer_size
  + max_allowed_packet) <-- カッコ内は1接続あたりの使用メモリ

+ key_buffer_size
+ query_cache_size
+ innodb_buffer_pool_size
+ innodb_additional_mem_pool_size
+ innodb_log_buffer_size

値は、MySQLにログインして下記のコマンドで分かる。
SHOW VARIABLES

値を変えるには、
/etc/my.cnfを下記のように変更する。
set-variable = key_buffer=64M
変更後、再起動して、
SHOW VARIABLES
コマンドで変更されていることが確かめられる

この記事へのコメント

この記事へのトラックバック