То, о чем я здесь буду рассказывать,обычно не требуется для нормального функционирования игрового сервера. Однако, когда у вас стоит не один, и не два сервера, и на многих серверах высокий онлайн, наверно многие задумывались об оптимизации (любой, начиная от плагинов и заканчивая настройкой ОС). Здесь я расскажу о стандартных настройках и параметрах сервера, которые мало где описаны, либо описаны недостаточно понятно/полно, но которые позволяют "тюнинговать" Source-серверы для уменьшения использования одних ресурсов и более аккуратного распределения других.
Большинство данных параметров актуально для обоих ОС (Windows/Linux).
Список таких вот "Трюков" думаю постепенно пополнять...
Большинство данных параметров актуально для обоих ОС (Windows/Linux).
Многие помнят строчку в консоли
Network: IP 77.232.128.228, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
Однако, при запуске уже второго сервера появляется строчка
WARNING: Port 27005 was unavailable - bound to port 27006 instead
И соответственно
Network: IP 77.232.128.228, mode MP, dedicated Yes, ports 27016 SV / 27006 CL
Все бы ничего, в принципе этот порт CL особо ни на что не влияет, проблемы возникают когда серверов больше десяти - если скажем на порту 27015 сервер не был запущен, то при запуске одиннадцатого сервера займется порт 27015 - и вот тут уже начинаются проблемы.
В SRCDS есть стандартная переменная, которую можно указывать при запуске - clientport Итого, можно написать в строке запуска "+clientport 27115" - и порты не будут пересекаться. Если же у вас количество серверов огромное - можно и 28015 поставить...
В итоге можно использовать любой диапазон портов для сервера, не ограничиваясь началом с 27015. Хотя, есть еще проблема с портами от 27020, но об этом в следующем разделе
Network: IP 77.232.128.228, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
Однако, при запуске уже второго сервера появляется строчка
WARNING: Port 27005 was unavailable - bound to port 27006 instead
И соответственно
Network: IP 77.232.128.228, mode MP, dedicated Yes, ports 27016 SV / 27006 CL
Все бы ничего, в принципе этот порт CL особо ни на что не влияет, проблемы возникают когда серверов больше десяти - если скажем на порту 27015 сервер не был запущен, то при запуске одиннадцатого сервера займется порт 27015 - и вот тут уже начинаются проблемы.
В SRCDS есть стандартная переменная, которую можно указывать при запуске - clientport Итого, можно написать в строке запуска "+clientport 27115" - и порты не будут пересекаться. Если же у вас количество серверов огромное - можно и 28015 поставить...
В итоге можно использовать любой диапазон портов для сервера, не ограничиваясь началом с 27015. Хотя, есть еще проблема с портами от 27020, но об этом в следующем разделе
В продолжение предыдущего, опять же, при запуске второго сервера появляется
WARNING: Port 27020 was unavailable - bound to port 27021 instead
В итоге такая же ситуация, как и в первом пункте, только сервер уже не поставится на порт 27020 и выше...
Решения: Если вам не нужен SourceTV (А он нужен практически только для CW), можно добавить в параметры запуска "-nohltv" - это отключит STV на корню, то есть не будет выделяться отдельный порт и соответственно ен будет работать tv_enable 1 и подобные. Если же вам нужен STV, то можно прописать в параметрах запуска "+tv_port 27215", опять же, порт любой, но для упрощения можно например последние две цифры оставить на совпадение с портом сервера, а третью изменить.
WARNING: Port 27020 was unavailable - bound to port 27021 instead
В итоге такая же ситуация, как и в первом пункте, только сервер уже не поставится на порт 27020 и выше...
Решения: Если вам не нужен SourceTV (А он нужен практически только для CW), можно добавить в параметры запуска "-nohltv" - это отключит STV на корню, то есть не будет выделяться отдельный порт и соответственно ен будет работать tv_enable 1 и подобные. Если же вам нужен STV, то можно прописать в параметрах запуска "+tv_port 27215", опять же, порт любой, но для упрощения можно например последние две цифры оставить на совпадение с портом сервера, а третью изменить.
Данный вопрос особенно актуален сейчас для серверов TF2 Mann vs. Machine, поскольку в принципе все серверы MvM особо ничем не отличаются.
Если у вас стоит SourceBans, то такой трюк не получится, поскольку для SB требуется прописывать ID сервера в конфиге, путь к которому нельзя изменить. Так же, на серверах будет одинаковая база админов, поскольку нет возможности указывать различные конфиги админов.
В параметрах запуска SRCDS есть параметр "+servercfgfile", при помощи которого можно изменить автоматически выполняемый при смене карты файл (То есть server.cfg).
Удобнее будет создать обычный файл server.cfg с настройками, общими для всех или больинства серверов, и отдельные конфиги, которые и будут файлами конфигурации для отдельных серверов, но которые вначале будут выполнять server.cfg
То есть, например (для TF2 MvM), в файле server.cfg указаны параметры RCON, логов, встроенных голосований, базовые параметры MvM, а в файле скажем srv_1.cfg, который является главным конфигом для первого сервера (то есть в строке запуска указано "+servercfgfile srv_1.cfg"), первой строчкой идет "exec server", а дальше идет имя сервера и параметры игровой авторизации на мастерсеврере (tf_server_identity_account_id/token)
Так же в данном случае можно закомментировать определенные строчки в конфигах в папке SM и указать их в srv_1, если необходимо различие этих переменных на серверах.
Для такого разделения пригодятся так же следующие команды и параметры:
mapcyclefile - позволяет изменить путь/имя файла mapcycle.txt, например можно создать файлы mc_1.txt mc_2.txt и в отдельных серверных конфигах (srv_1...) указать например mapcyclefile mc_1.txt - РАСШИРЕНИЕ ВАЖНО!
sv_logsdir - возволяет прописать путь стандартных логов сервеа (по умолчанию это папка logs)
motdfile - путь к файлу MotD (по умолчанию это motd.txt)
motdfile_text - путь к текстовой версии файла MotD (по умолчанию это motd_text.txt)
Если у вас стоит SourceBans, то такой трюк не получится, поскольку для SB требуется прописывать ID сервера в конфиге, путь к которому нельзя изменить. Так же, на серверах будет одинаковая база админов, поскольку нет возможности указывать различные конфиги админов.
В параметрах запуска SRCDS есть параметр "+servercfgfile", при помощи которого можно изменить автоматически выполняемый при смене карты файл (То есть server.cfg).
Удобнее будет создать обычный файл server.cfg с настройками, общими для всех или больинства серверов, и отдельные конфиги, которые и будут файлами конфигурации для отдельных серверов, но которые вначале будут выполнять server.cfg
То есть, например (для TF2 MvM), в файле server.cfg указаны параметры RCON, логов, встроенных голосований, базовые параметры MvM, а в файле скажем srv_1.cfg, который является главным конфигом для первого сервера (то есть в строке запуска указано "+servercfgfile srv_1.cfg"), первой строчкой идет "exec server", а дальше идет имя сервера и параметры игровой авторизации на мастерсеврере (tf_server_identity_account_id/token)
Так же в данном случае можно закомментировать определенные строчки в конфигах в папке SM и указать их в srv_1, если необходимо различие этих переменных на серверах.
Для такого разделения пригодятся так же следующие команды и параметры:
mapcyclefile - позволяет изменить путь/имя файла mapcycle.txt, например можно создать файлы mc_1.txt mc_2.txt и в отдельных серверных конфигах (srv_1...) указать например mapcyclefile mc_1.txt - РАСШИРЕНИЕ ВАЖНО!
sv_logsdir - возволяет прописать путь стандартных логов сервеа (по умолчанию это папка logs)
motdfile - путь к файлу MotD (по умолчанию это motd.txt)
motdfile_text - путь к текстовой версии файла MotD (по умолчанию это motd_text.txt)
Список таких вот "Трюков" думаю постепенно пополнять...