Мануал по оптимизации сервера под 500+ онлайна В данном мануале написана инструкция по оптимизации 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.j ar: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
|