В данном мануале написана инструкция по оптимизации Windows Server 2003 x64 и MySQL под работу Lineage 2 сервера с онлайном 500-600 человек.
Все знают, что Windows в стандарте всегда выделяет большую часть оперативной памяти внутренним службам, которые работают в фоновом режиме. Нас такое распределение вовсе не устраивает.
Поэтому:
- * 1.Нажмите правой кнопкой мыши на мой компьютер и выберите Свойства
- * 2.Кликните на вкладку "Дополнительно"
- * 3.Вы увидите окошко Быстродействие с кнопкой «Параметры» Нажмите на нее. (Новое окно)
- * 4.Кликните на вкладку "Дополнительно"
- * 5.В данном окне щёлкните на вкладку Дополнительно.
- * 6.Тут вы видите «Распределение времени процессора и использование памяти» поставьте везде «Программ».
Таким образом, мы добьемся правильного распределения мощностей.
Теперь нам нужно выделить больше виртуальной памяти под систему.
Делаем мы это таким образом:
- * 1.Нажмите правой кнопкой мыши на мой компьютер и выберите Свойства (появится новое окно)
- * 2.Кликните на вкладку "Дополнительно"
- * 3.Вы увидите окошко Быстродействие с кнопкой «Параметры» Нажмите на нее. (Новое окно)
- * 4.Кликните на вкладку "Дополнительно"
- * 6.В самом низе раздел "Виртуальная память",в данном разделе нажмите изменить.
- * 7.Появится новое окно,в данном окне выберите свой жёсткий диск,
- * где у вас стоит ваш сервер,когда выбрали диск с сервером,
- * то чуть ниже выберите "Размер файла подкачки для выбранного диска",выберите пункт "Особый размер".
- * 8.Появятся два окошечка для ввода:
- * Исходный размер(Мб):
- * Максимальный размер(Мб):
- * В данных полях вы вводите количество общей оперативной памяти делённой на 1,5
- * Т.е. в данный момент у меня 8,5 гигабайт оперативной памяти,я делю 8500 на 1,4
- * Получается примерное значение: 6100 гигабайт
- * Данное примерное значение вводим в обоих окнах:
- * Исходный размер(Мб): 6100
- * Максимальный размер(Мб): 6100
- * Проверьте что вы поделили верно и вписали в оба окна,одинаковые значения.
- * После чего нажмите Ok.
- * 9.Закройте все окна и перезагрузите компьютер.
сли у Вас есть лишний пустой жесткий диск, то советую использовать его под файл подкачки.
На этом этапе настройка Windows окончена.
Теперь переходим к настройкам MySQL, что мы уже давно и успешно установили.
В первую очередь настроим максимальное количество подключений (коннектов) к MySQL:
# Максимальное количество конкурирующих сессий сервер MYSQL будет
# позволять подсоединяться. Одна из этих связей будет резервироваться для потребителя с
# наивысшими привилегиями, т.е. для администратора, даже если
# предел связи был достигнут.
max_connections=2000 - тут ставим ~2000, это будет оптимальным значением для сервера, учитывая, что у Вас еще и база сайта, к которой тоже коннектятся
Если ваши таблицы становятся большими, нужно поставить более большее значение чем есть,т.е. если ваша таблица весит 200 мб,то нужно поставить в 2 раза больше т.е. 512.
table_cache=256
Это дополнительная память которая выделяется для таблиц в случае если они больше указанного значения table_cache,настройка на 8mb более чем достаточно
innodb_additional_mem_pool_size=8M
Нет смысла ставить больше 16мегов.
The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=16M
Если на сервере есть свободная оперативная память, то здесь можно увеличивать значения, что благотворно скажется для базы.
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system. Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=1024M
Обычно выставляют половину от моего innodb_buffer_pool_size.
Помни, если менять этот конфиг, то нужно выключить мускул и удалить логи.
Логи находятся : MySQL Server 5.0\data
удалите ib_logile0 and ib_logfile1
# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=512M
Сборка(на примере сборки от Scoria):
gameserver_loop.sh
DBHOST=localhost
USER=root
PASS=
DBNAME=l2jdb
err=1
until [ $err == 0 ];
do
#mysqlcheck -h $DBHOST -u $USER --password=$PASS -s -r $DBNAME>>"log/`date +%Y-%m-%d_%H:%M:%S`-sql_check.log"
#mysqldump -h $DBHOST -u $USER --password=$PASS $DBNAME|zip "backup/`date +%Y-%m-%d_%H:%M:%S`-l2jdb_gameserver.zip" -
mv ./log/java0.log.0 "./log/`date +%Y-%m-%d_%H-%M-%S`_java.log"
mv ./log/stdout.log "./log/`date +%Y-%m-%d_%H-%M-%S`_stdout.log"
#if need - uncoment# #mv ./log/chat.log "./log/`date +%Y-%m-%d_%H:%M:%S`-chat.log"#
java -Dfile.encoding=UTF-8 -Xms1024m -Xmx2048m -XX:+UseParallelGC -XX:+AggressiveOpts -cp ./lib/*:l2scoria-mmocore-2.jar:bsh-engine.jar:bsh-2.0b5.jar:c3p0-0.9.1.2.jar:jython.jar:jython-engine.jar:commons-logging-1.1.jar:commons-io-1.2.jar:commons-lang-2.1.jar:javolution.jar:mysql-connector-java-5.1.8-bin.jar:/lib/l2scoria-core-3.jar com.l2scoria.gameserver.GameServer > ./log/stdout.log 2>&1
sleep 10;
done
flood.properties
# Должна равняться примерному значения игроков
FloodProtectorInitialSize = 600
mmocore.properties
#-------------------------------------------------------------
# Настройка буфера соединения -
#-------------------------------------------------------------
# Размер буфера в КБит (килобитах)
# По умолчанию (Windows) - 64KBits
# По умолчанию (*nix) - 128KBits
NetworkReadBufferSize = 128
NetworkWriteBufferSize = 128
NetworkHelperBufferSize = 128
*** Если Win - 64 ставь
# Размер вспомогательного буфера
NetworkHelperBufferCount = 20
Взято с worldonline