Для того чтобы система работала наилучшим образом нужно, чтобы были настроены под данное железо Mysql и Jboss, диски и файловая система были быстрыми, с сетью не было проблем. Сейчас мы будем рассматривать только настройки Jboss и MySQL. В идеальном мире под сервер приложений и баз данных выделяют отдельные машины, и на каждой машине серверу отдают все ресурсы. Но у нас все не так, поэтому будем считать что половину свободной оперативной памяти мы отдадим JBoss-у и вторую половину MySQL. Точнее, от всей оперативной памяти отнимем то, что необходимо под ОС и прочие приложения,а остальное поделим пополам. Сама настройка: В примерах ниже будем считать, что мы можем отдать 4гБ серверу приложений и столько же мускулу. 1) Увеличиваем память для jboss. Эти изменения вносятся в файл /opt/synergy/jboss/standalone/bin/standalone.conf Находим вот такое: if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true" JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone.xml" else echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS" fi И меняем цифры: Xms64m -> Xms1024m память, которая будет занята при загрузке Xmx512m -> Xmx4096m максимальный объем памяти, который сможет использовать ява машина Получаем: if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xms1024m -Xmx4096m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true" JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone.xml" else echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS" fi Чтобы настройки вступили в силу надо перезапустить Jboss 2) Настраиваем Mysql. Настройки mysql находятся в файле /etc/mysql/my.cnf 2.1) Обязательно надо выполнить следующие настройки (в секцию mysqld): * увеличиваем количество соединений max_connections = 100 * увеличиваем пулы для InnoDB **innodb_buffer_pool_size - рекомендуют делать около 75% RAM, но мы знаем что максимум можем отдать мускулу только 50%, поэтому считаем 75% от 50% и получаем innodb_buffer_pool_size = 3G ** файл лога, сделайте для начала innodb_log_file_size=512M ** innodb_thread_concurrency = 12 2.2) Скачиваем специальный скрипт, который нам будет подсказывать правильно ли мы делаем настройку (https://launchpad.net/mysql-tuning-primer). wget https://launchpad.net/mysql-tuning-primer/trunk/1.6-r1/+download/tuning-primer.sh Делаем файл исполняемым chmod a+x tuning-primer.sh Запускаем ./tuning-primer.sh Получаем вывод warning, got bogus unix line. warning, got bogus unix line. warning, got bogus unix line. warning, got bogus unix line. Using login values from ~/.my.cnf - INITIAL LOGIN ATTEMPT FAILED - Testing for stored webmin passwords: None Found Could not auto detect login info! Found potential sockets: /var/run/mysqld/mysqld.sock Using: /var/run/mysqld/mysqld.sock Would you like to provide a different socket?: [y/N] Отвечаем N Do you have your login handy ? [y/N] Отвечаем y. Далее скрипт запросит логин и пароль для подключения к mysql User: root Password: root И захочет создать файл настроек для того чтобы не спрашивать параметры подключения в следующий раз Would you like me to create a ~/.my.cnf file for you? [y/N] : Можно ответить ему y Далее смотрим на вывод скрипта и корректируем настройки в соответствии с его рекомендациями и здравым смыслом. Чтобы настройки вступили в силу надо перезапустить Mysql. При этом надо помнить, что mysql можно перезапускать только при потушенном Jboss-е.