Начнем...
Linux - если не понимаешь лучше не ставить.
Если конечно не хочешь танцевать с бубном.
Просто все говорят Линукс, Линукс, Линукс...
Задавая вопрос скажи 5 отличий от Виндоус сервера, человек приходит в ступор.
На Линуксе все все просто, гайдов много но и мороки не мало.
Windows Server настроить сложнее раз в 100, потому что людей с сертификатом Виндоус Администратора тут точно нету.
Если хорошо настроить Windows Server он будет работать не хуже чем Linux и это факт. Серьезные компании работают на WS и куй кто их ломает...
Теперь по теме:
Лучший вариант для тебя это Windows Server 2003 x64 Enterprsise Edition.
Скачиваем для нашего дистрибутива ОС Mysql (Пасс www.la2base.ru)
Скачиваем для нашего дистрибутива ОС Java platform (Выбрав 64 битный Mysql) JRE
Ну чтож, считаем что у нас есть хорошая серверная машина с Windows 2003.
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.Закройте все окна и перезагрузите компьютер.
Если есть пустой хард, то советую использовать его под файл подкачки.
На этом настройка на данном этапе закончена.
Далее пошли в MYSQL
Внимание настройки конфигурация производятся в файле конфигурации mysql: my.ini
Жизненно необходима настройка мускула, иначе лаги начнутся уже при онлайне в 300 человек.
Хотя я и не спец по мускулу, но пару советов дам.
Я буду показывать части из моих конфигурационных файлов mysql, для наглядности.
Несмотря на то, что mysql требует много оперативной памяти, ее нужно выделять с умом!
Иначе вы получите переполенный буфер и как следствие лаги!
Вам нужно всегда знать, сколько весит ваша база данных, и регулярно менять размер потребления ею оперативны.
Пример: Моя база данных весит 200 МБ, потому устанавливаю размер оперативной памяти на 512МБ.
Отключите ваш Мускул перед любыми настройками.
Текст типа --------> чтото умное <-------- мои комментарии.
Для начала проверим предустановки:
Находим в файле my.ini строчку:
default-storage-engine=INNODB
Если данной строчки нету, значит ищем :
default-storage-engine=
Пояснение:
default-storage-engine- Указывает какой движок использован для создания таблиц mysql .
INNODB-стандартная,версия движка для создания таблиц mysql
--------> Максимальное количество коннектов к mysql.
# Максимальное количество конкурирующих сессий сервер MYSQL будет
# позволять подсоединяться. Одна из этих связей будет резервироваться для потребителя с
# наивысшими привилегиями, т.е. для администратора, даже если
# предел связи был достигнут.
max_connections=300
-------->Оптимально поставить: 200-300 для онлайна в 200-300 человек.
-------->Это нужно установить на значение 0,так как это не используется в l2j серверах и только замедляет работу сервера.
# Данная опция подаёт запрос на кеширование сервера в оперативную память и количество памяти для к
кэширования.1=включено,0=выключено.
query_cache_size=0
------> Если ваши таблицы становятся большими, нужно поставить более большее значение чем есть,т.е. если ваша таблица весит 200 мб,то нужно поставить в 2 раза больше т.е. 512.
table_cache=256
innodb_additional_mem_pool_size=8M
------>Хз для чего нужная эта фишка, тестить не хочу.
------>Но знаю точно что выставив 0 будут проблемы с I/O spikes
------>Потому юзаю "2"
# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=2
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
# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=20
-----> зависит от мощности проца, в твоем случае 20 будет нормально.
memlock
-----> создается отдельная таблица для каждого файла. это создает хорошее повышение производительности сервера
-----> Помните если вы что либо изменили в конфигурации mysql,то вам нужно заново импортировать все таблицы/файлы в mysql.
-----> Создайте базу с таким название и оставьте её пустой.
Название:
innodb_file_per_table
Хорошо я разъяснил все, что касаться mysql. Я рекомендую купить отдельный хард под базу данных. Это позволит повысить производительность.
Поехали дальше.
6.Стартовые файлы.
Теперь поговорим о выделении памяти под ява процессы.
Есть не сколько фактов которые вы должны знать:
1. Если у вас 32х битная ява, не выставляйте значения для xmx and xms больше 1536 мегабайт. У тебя стоит x64 так что похуй (предела нету)
2. Параметр –server можно выставлять при условии, что у вас двухядерный процессор и оперативы больше 2 гигабайт.
Код:
startgameserver.bat
title Game Server Console
:start
echo Starting L2J Game Server.
echo.
REM -------------------------------------
REM Default parameters for a basic server.
REM java -Xmx2028m -cp ./../libs/*;l2jserver.jar net.sf.l2j.gameserver.GameServer
REM
REM If you have a big server and lots of memory, you could experiment for example with
java -server -Xmx4096m -Xms2048m -Xmn1024m -XX:PermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOpts -cp ./../libs/*;l2jserver.jar net.sf.l2j.gameserver.GameServer
REM -----
Ставишь высокий приоритет на ГС и все будет чик-пик.
По поводу интернета я хз.