1. Bitcoin адрес для пожертвований: 1dapfB97R98wg8J3hknWpMDJ7P61CWjNn
    Скрыть объявление
  2. Участникам форума доступны: Skype, WhatsApp и Telegram конференции. Присоединяйтесь!
  3. Наши основные группы и каналы: VK, Twitter. Подписывайтесь!
  4. Мы открыли музыкальный клуб! Заходи и ставь свое музло!
  5. Скрыть объявление

Сервер под Windows

Тема в разделе "Курсы по программированию", создана пользователем akademik, 1 апр 2008.

  1. akademik

    akademik Новичок

    Репутация

    0 / 0


    1.Hardware/OS
    Прежде чем сделать что либо,вы должны знать конфигурацию своего компьютера,используют в основном Intel Pentium,с 2 слотами оперативной памяти,по 2 гигабайта,такой возможно имеет вид компьютер который используется в основном для серверов lineage2.
    Хотя,я думаю это основной вид серверов lineage2,и это,я думаю минимальные затраты на серверную машину,для поддержи онлайна сервера 1000+ игроков.
    Я использую следующую конфигурацию компьютера:
    Процессор: Quad Core Xeon 3220 - 2.40GHz (Kentsfield) - 2 x 4MB cache
    Оперативная память: 8 GB DDR2 667
    Жёсткий диск: 73GB SA-SCSI,15000 скорость оборотов дисков(RPM)
    2-ой Жёсткий диск: 73GB SA-SCSI,15000 скорость оборотов дисков(RPM)
    Линия интернет: 1000mbit
    Windows: Windows server 2003 64bit RC2

    Вы думаете что процессор это главная вещь для вашего сервера,но на самом деле,ваш жёсткий диск,имеет более важное значение.
    Если вы хотите запустить на сервер более 600 игроков,и что бы сервер не лагал,то вам нужен что бы ваш жёсткий диск поддерживал,скорость вращения дисков, 15000 оборотов в минуту.У меня на данный момент есть два таких жёстких диска с поддержкой,скорости вращения дисков 15000 оборотов в минуту.
    Первый жёсткий диск моего компьютера содержит Windows,нужные программы для работы Windows и сервера,и все нобхадимые мне файлы и прочее.
    Второй жёсткий диск предназначен для моей базы данных сервера.Если конечно вы хотите производительность и скорость работы сервера,то вы всегда должны размещать Windows и программы на 1 жёстком диске,а сервер на другом.Это увеличит скорость работы сервера,и уменьшит нагрузку на сервер.
    Некоторые считают что это необходимо делать,для того что бы во время игры на вашем сервере не было лагов.
    Об оперативной памяти:
    6 Гигабайт оперативной памяти,сделают отличную работу вашего сервера,без всяких лагов,при онлайне 1000+ игроков.
    О линии интернета:
    100 Мбит. более чем достатачно для сервера с онлайном в 1000+ игроков.

    Windows,я рекомендую использовать Windows Server 2003 64 bit.Таким образом,вы сможите запускать ваши java и mysql в 64 битном режиме,скорость запуска которых значительно выше чем в других версиях Windows.
    Кроме этого,вы сможете выделять больше памяти для работы тех или иных предложений Windows,об этом я расскажу посже.

    2.Windows Server 2003
    Теперь вы видите,что мы получили оптимизированную машину для сервера,на которой будет наш сервер и windows,я думаю теперь мы будем производить конфигурацию Windows.
    Первое что вам необходимо изменить,это распределение оперативной памяти.Windows устанавливает свои распределения оперативной памяти на каждый файл,по умолчанию.
    Хотя это может быть очень полезно для ваших файлов,но мы установим для файлов свои распределения оперативной памяти.
    И так начнём:

    1.Нажмите правой кнопкой мыши на мой компьютер и выберите Свойства (появится новое окно)
    2.Кликните на вкладку "Дополнительно"
    3.Вы увидите окошко с кнопкой "(settings)Настройки быстродействия,или же системы....." Нажмите на нее. (Новое окно)
    4.Кликните на вкладку "Дополнительно/Параметры"
    5.В данном окне щёлкните на вкладку Дополнительно.
    6.После чего увидите в самом низе раздел "Виртуальная память",в данном разделе нажмите изменить.
    7.Появится новое окно,в данном окне выберите свой жёсткий диск где у вас стоят ваши программы для работы сервера и windows(папка program files),когда выбрали диск с программами,то чуть ниже выберите "Размер файла подкачки для выбранного диска",выберите пункт "Размер по выбору системы(windows)"
    8.Закрыли все данные окна.

    Хорошо,теперь оперативная память распределяется правильным путём.Теперь мы собираемся изменить размер траты оперативной памяти на жёсткий диск вашего сервера.Проделываем следующее:
    1.Нажмите правой кнопкой мыши на мой компьютер и выберите Свойства (появится новое окно)
    2.Кликните на вкладку "Дополнительно"
    3.Вы увидите окошко с кнопкой "(settings)Настройки быстродействия,или же системы....." Нажмите на нее. (Новое окно)
    4.Кликните на вкладку "Дополнительно/Параметры"
    5.В данном окне щёлкните на вкладку Дополнительно.
    6.После чего увидите в самом низе раздел "Виртуальная память",в данном разделе нажмите изменить.
    7.Появится новое окно,в данном окне выберите свой жёсткий диск где у вас стоит ваш сервер,когда выбрали диск с сервером,то чуть ниже выберите "Размер файла подкачки для выбранного диска",выберите пункт "Особый размер".
    8.Появятся два окошечка для ввода:
    Исходный размер(Мб):
    Максимальный размер(Мб):
    В данных полях вы вводите количество общей оперативной памяти делённой на 1,5
    Т.е. в данный момент у меня 8,5 гигабайт оперативной памяти,я делю 8500 на 1,4
    Получается примерное значение: 6100 гигабайт
    Данное примерное значение вводим в обоих окнах:
    Исходный размер(Мб): 6100
    Максимальный размер(Мб): 6100
    Удостоверьтесь что вы поделили верно и вписали в оба окна,одинаковые значения.
    После чего нажмите Ok.
    9.Закройте все окна и перезагрузите компьютер.

    Если вы хотите хорошую производительность,и вы получили неиспользуемый жёсткий диск,то вы можете изменить его расход оперативной памяти так же как и предыдущий.
    Это придаст ему на много больше производительности.

    На этом настройка на данном этапе закончена.

    3.MySql
    Внимание настройки конфигурация производятся в файле конфигурации mysql: my.ini
    Хорошо,теперь займёмся настройкой mysql,большинство людей ненавидят настраивать конфигурации файлов mysql,но это действительно необходимо,для хорошей работы сервера.
    Я не являюсь экспертом в области mysql,однако за пару часов чтения и просмотра информации по mysql,я нашёл не которые вещи которые действительно стоит изменить.
    Я буду показывать части из моих конфигурационных файлов mysql,для того что бы вам было легче понять что нужно менять.
    Несмотря на то что mysql требует много оперативной памяти,не нужно устанавливать гигантские употребления оперативной памяти для mysql.
    Это только создаст гиганские неиспользуемые пространства в ваших файлах базы.
    Вам нужно просто знать сколько весит ваша база данных,и регулярно менять размер потребления оперативной памяти mysql.
    Пример: Моя база данных весит 200 МБ в общем,я буду устанавливать размер употребления оперативной памяти для mysql на 512МБ
    Закройте ваш mysql перед изменением чего либо(файла: my.ini).

    Для начала проверим установки:
    Находим в файле my.ini строчку:
    default-storage-engine=INNODB
    Если данной строчки нету,значит ищем просто:
    default-storage-engine=
    Пояснение:
    default-storage-engine-Указывает на то что будет использоваться какой либо движок для создания таблиц mysql
    INNODB-стандартная,версия движка для создания таблиц mysql

    -------->Данным знаком обозначаются мои комментарии.

    --------> Максимальное количество подсоеденений к mysql.
    # Максимальное количество конкурирующих сессий сервер MYSQL будет
    # позволять подсоединяться. Одна из этих связей будет резервироваться для потребителя с
    # наивысшими привилегиями, т.е. для администратора, даже если
    # предел связи был достигнут.
    max_connections=600
    -------->Оптимально поставить: 500-600 для онлайна в 500-600 человек.

    -------->Это нужно установить на значение 0,так как это не используется в l2j серверах и только замедляет работу сервера.
    # Данная опция подаёт запрос на кеширование сервера в оперативную память и количество памяти для к
    кэширования.1=включено,0=выключено.
    query_cache_size=0
    -------->Оптимально поставить: 0,для лучшей работы сервера l2j.

    ------> Если ваши таблицы становятся большими, нужно поставить более большее значение чем есть,т.е. если ваша таблица весит 200 мб,то нужно поставить в 2 раза больше т.е. 512.
    table_cache=256
    -------->Оптимально поставить: 256-512,в зависимости от размера базы сервера.


    ---------> Это дополнительная память которая выделяется для таблиц в случае если они больше указанного значения table_cache,настройка на 8mb более чем достаточно
    innodb_additional_mem_pool_size=2M
    -------->Оптимально поставить: 8-9M,взависимости от вашиз планов для сервера.

    --------> Поставьте сюда оптимальное значение,если у вас есть свободная оперативная память для вашей базы данных. На мин, 1024, достаточно.
    innodb_buffer_pool_size=1024M
    -------->Оптимально поставить: 256-512,взависимости от вашего коммпьютера.


    -----> Настройка файлов mysql использует память, и не приносит нагрузку на файлы.
    memlock


    -----> создается отдельная таблица для каждого файла. это создает хорошее повышение производительности сервера
    -----> Помните если вы что либо изменили в конфигурации mysql,то вам нужно заново импортировать все таблицы/файлы в mysql.
    -----> Создайте базу с таким название и оставьте её пустой.
    Название:
    innodb_file_per_table

    Хорошо я разъяснил всё что должно касаться mysql. Я рекомендую купить выделенный hardisk для вашей базы данных. Это позволит повысить производительность.Поехали дальше.

    4.L2j Threadpool config
    Настройка в конфигурации сервера.

    И так,осталось сделать совсем чуть чуть,для начала нужно оптимизировать настройки threadpool
    В данном конфиге определяются сколько сообщений может быть создано.Эти параметры всегда были загадкой для меня.
    Перед тем как менять что либо тут убедитесь что у вас хороший процессор,я решил поэксперементировать над данным настройками и поставил их на высокие:

    Откройте ваш options.properties файл и посмотрите на это:

    # ================================================= = ===============
    # Настройка threadpool - Будьте осторожны, изменяя это
    # ================================================= = ===============

    ThreadPoolSizeEffects = 50
    ThreadPoolSizeGeneral = 65

    По умолчанию # 2
    UrgentPacketThreadCoreSize = 10
    # по умолчанию 4
    GeneralPacketThreadCoreSize = 20
    # по умолчанию 4
    GeneralThreadCoreSize = 20

    AiMaxThread = 20

    -------------------------------------------------- ----------------

    Я поставил их 5x нормальные значения для моего компьютера. Это прекрасно работает на моем сервере, но вы должны экспериментировать с данными настройками.
    Начать со стандартной настройки и посмотреть как это работает и потом изменять по мере возможности и риска,для начала эксперимента установите их 2х значения.
    Т.е. умножте стандартные настройки данной конфигурации на 2,и сохраните файла.
    Вы должны эксперементировать над данными конфигами,пока не найдёте прекрасной конфигурации для вашего компьютера.

    5.Прочие конфиги

    Хорошо,пришло время сказать о прочих конфигах сервера которые ведут нагрузку на ваш компьютер.

    --------> Настройка логов
    # ================================================= = ===============
    # Конфигурации логов
    # ================================================= = ===============
    # Настройка логов чата всего мира (true=влючено,false=выключено)
    LogChat = False
    # Настройка логов сбора дропа,спойла,итемов,ресурсов и прочего.(true=влючено,false=выключено)
    LogItems = False
    # Настройка логов ГМ-ов,пишит логи всех действий Гмов.(true=влючено,false=выключено)
    GMAudit = True


    -------> Максимальное отклонение моба от точки спауна,установка маленького значения,снизит на грузку на ваш компьютер.
    Ma:DriftRange = 0


    -------> установка в false может улучшить работу серверов с высокими рейтами
    PreciseDropCalculation = False

    # Данная настройка это эксперементальная синхронизация между Клиентскими <-и-> Серверными координатами игрока,
    # 0 - нет синхронизации ВООБЩЕ !!!
    # 1 - Частичная синхронизация от клиента -к-> серверу
    # 2 - Частичная синхронизация от Сервера -к-> клиенту
    # 3 - Полная синхронизация Клиента <-и-> Сервера
    # -1 - Старая система синхронизации: Только по оси Z
    CoordSynchronize = -1

    6.Параметры старта сервера
    Хорошо,теперь всё зависит от конфигурации java запускных файлов.
    Это точно так же как и конфиги сервера,может нагрузить или снизить нагрузку на ваш компьютер.
    Есть не сколько фактов которые вы должны знать:
    Во первых если у вас java 32 bit,вы не можете регулировать xmx и xms выше 1536
    Во вторых,-параметр сервера.Вы должно использовать данные xmx и xms,если у вас двухядерный процессор,или у вас более 4 гигабайт оперативной памяти.Если у вас нету нету не 1 не 2,то не используйте данный параметр для вашей же безопасности.
    Разницы между запуском и спобом запуска сервера-есть,будет лучше если вы отредактируйте данный конфиг.
    Конфиг в запуске сервера:
    -Xmx4096m-Xms2048m-Xmn1024m-XXxPermSize=256m
    Данный параметр указывает на то что ваш компьютер имеет максимум 4 гигабайта для сервера,и минимум 256,т.е. вы должны отредактировать данные настройки под свой компьютер.Если у вас есть большой сервер и много оперативной памяти,вы можете эксперементировать над данными конфигами.
    На моём сервере всё работает и так прекрасно,поэтому я не менял данный конфиг.
    Конфиг startgameser.bat

    title Game Server Console
    :start
    echo Starting L2J Game Server.
    echo.
    REM -------------------------------------
    REM Default parameters for a basic server.
    REM java -Xmx1024m -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 -XXxPermSize=256m -XX:SurvivorRatio=8 -Xnoclassgc -XX:+AggressiveOpts -cp ./../libs/*;l2jserver.jar net.sf.l2j.gameserver.GameServer
    REM -------------------------------------

    Хорошо,если у вас всё работает!
    Руководство по конфигурации сервера,что бы можно было запускать на сервер 1000+ игроков.
    Если у кого то есть комментарии или вопросы,то пишем.
    Извиняюсь за грамматику.Писалось всё быстро.
    Удачной вам работы над сервером

  2. Злой заяц

    Злой заяц Новичок

    Репутация

    24 / 7


    Скрытый текст:
    Для просмотра скрытого текста Вы должны отключить AdBlock, либо другой блокировщик рекламы.

  3. Glukava

    Glukava Новичок

    Репутация

    0 / 0


    все хотел спросить а разнесение базы и скрипта на разные железки не даст +++ в производительности при большой нагрузке?
    насколько я понимаю это win32& ?