Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

hlds multicore

Статус пользователя Boo
сообщение 8.6.2024, 19:44
Сообщение #1


Стаж: 17 лет

Сообщений: 468
Благодарностей: 22
Полезность: 73

Насколько я знаю то hlds работает только с одним ядром , но, возможно есть что то что может заставить работать на 4 ядрах ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Gecko
сообщение 8.6.2024, 20:34
Сообщение #2
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

Цитата(Boo @ 8.6.2024, 19:44) *
Насколько я знаю то hlds работает только с одним ядром , но, возможно есть что то что может заставить работать на 4 ядрах ?

Средствами ОС, taskset -c 0,1 ./hlds_run это костыль который я лично не советую использовать в том виде который я описал, на 1 игровой сервер бери всегда одно ядро, если ядер больше, то каждый сервер можно распределить по ядрам с помощью taskset.

Я уже много раз на этом форуме писал о том, что игровой сервер cs 1.6 в разы выгоднее держать на одном VPS (один игровой сервер = один VPS). Брать сервер с несколькими ядрами и запускать там несколько серверов - это бред. Брать игровой сервер и держать параллельно с ним тяжелые веб-проекты это тоже бред.


Дополню: 1 VPS с одним ядром


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Boo
сообщение 9.6.2024, 8:37
Сообщение #3


Стаж: 17 лет

Сообщений: 468
Благодарностей: 22
Полезность: 73

в моем случаи там 4 ядра и боты, боты подгружают 1 ядро из 4 и иногда лаги, я понимаю что это всё было написано в начале 2000 и о многоядерности речи быть не может, но всё же, может есть варианты как распределить нагрузку между ядрами хоть немного )

Это некий эксперимент по запуску hlds
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 9.6.2024, 8:50
Сообщение #4
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

Цитата(Boo @ 9.6.2024, 8:37) *
в моем случаи там 4 ядра и боты, боты подгружают 1 ядро из 4 и иногда лаги, я понимаю что это всё было написано в начале 2000 и о многоядерности речи быть не может, но всё же, может есть варианты как распределить нагрузку между ядрами хоть немного )

Это некий эксперимент по запуску hlds

Я думал ты за 20 лет уже провёл все возможные эксперименты.

Нет, к сожалению других вариантов нет, я по крайней мере таких не знаю. Только переписывать программу, либо другие но тоже костыли.
В твоём случае нужно было устанавливать сервер с ботами на одном VPS но с хорошей тактовой частотой процессора > 4Ghz. Либо в твоём случае хостер что-то мутит, как вариант нода работает на пределе (эффект плохого соседа), просто не стоит забывать что это vCPU (виртуальный процессор/ядро процессора) тут многое зависит от гипервизора и от общей нагрузки на хостовую машину (в большей степени).


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Boo
сообщение 9.6.2024, 8:58
Сообщение #5


Стаж: 17 лет

Сообщений: 468
Благодарностей: 22
Полезность: 73

Цитата(Gecko @ 9.6.2024, 8:50) *
Я думал ты за 20 лет уже провёл все возможные эксперименты.

К сожалению 10 лет назад даже не было того что есть сейчас, опыта и желания в том числе, это больше хобби-эксперимент, а не попытка создания реального сервера для продакшена

Цитата(Gecko @ 9.6.2024, 8:50) *
Нет, к сожалению других вариантов нет, я по крайней мере таких не знаю. Только переписывать программу, либо другие но тоже костыли.
В твоём случае нужно было устанавливать сервер с ботами на одном VPS но с хорошей тактовой частотой процессора > 4Ghz. Либо в твоём случае хостер что-то мутит, как вариант нода работает на пределе (эффект плохого соседа), просто не стоит забывать что это vCPU (виртуальный процессор/ядро процессора) тут многое зависит от гипервизора и от общей нагрузки на хостовую машину (в большей степени).

Это не VPS, это реальное железо, но не простое derisive.gif

Отредактировал: Boo, - 9.6.2024, 8:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 9.6.2024, 9:06
Сообщение #6
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

Boo,
Цитата
Это не VPS, это реальное железо, но не простое

Малинка? )))

Цитата
Хороший проц спасёт отца русской демократии.


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Boo
сообщение 9.6.2024, 10:07
Сообщение #7


Стаж: 17 лет

Сообщений: 468
Благодарностей: 22
Полезность: 73

Gecko, не совсем, но типа того, не одноплатник
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 9.6.2024, 13:46
Сообщение #8
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

если можно собрать из исходников ботов, то можно вешать на ядра тяжелые вычислительные процессы соответственно дописав в коде affinity на какие то функции, однако, замечу, что не все возможно так сделать, (opengl и др)


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Boo
сообщение 9.6.2024, 14:41
Сообщение #9


Стаж: 17 лет

Сообщений: 468
Благодарностей: 22
Полезность: 73

слишком сложно и долго ))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 13.6.2024, 19:28
Сообщение #10


Иконка группы

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
Цитата
может заставить работать на 4 ядрах

Невозможно

taskset - не панацея. Если вы поставите процесс на 2 ядра, в тот момент когда его выполнение будет перепрыгивать с одного ядра на другое будут фризы. Проверено. Если вы поставите выполнение процесса hlds на одно ядро никто не даст вам гарантию того что любой создаваемый системой процесс не займет это же ядро. То есть если на сервере php-fpm или apache2 "плодит" процессы, они будут выполняться на всех 4 ядрах равномерно, создавая лаги на игровом сервере.

Цитата
Малинка

Забудьте. Нет hlds скомпилированного под ARM и прочие "мобильные" архитектуры.

Вам поможет только cpuset. Выделяете одно ядро, кидаете один процесс на это ядро а все остальные процессы система распределяет поровну между оставшимися ядрами. Я держал в европейской локации на 4 ядрах:
0 ядро - hlds CS 1.6
1 ядро - hlds Condition Zero
2,3 ядра - все остальные процессы.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 13.6.2024, 19:54
Сообщение #11
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

Metal Messiah,
Цитата
Забудьте. Нет hlds скомпилированного под ARM и прочие "мобильные" архитектуры.


С Box86 можно запустить сервер на малинке

Код
box86 ./hlds_run -game cstrike +map de_dust2 ...


Как вариант - qemu...


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 13.6.2024, 20:11
Сообщение #12
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

Metal Messiah,
Цитата
Вам поможет только cpuset


А в чем разница taskset и cpuset в контексте того чтобы привязать процесс к определённому процессору/ядру

Я тебе отвечу заранее, никакой разницы. Для того чтобы повесить нужный процесс на ядро достаточно использовать taskset, а функционал cpuset в данном случае избыточен.


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 19.6.2024, 12:08
Сообщение #13


Иконка группы

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
Цитата
А в чем разница taskset и cpuset в контексте того чтобы привязать процесс к определённому процессору/ядру


taskset сообщает что указанный процесс должен запускаться на выбранном ядре (выбранных ядрах). При этом системе либо кому-то еще не запрещено на этих же ядрах крутить что-то еще.
cpuset как раз выдаляет ядра процессу, и больше ни одна сволочь на этом выделенном ядре ничего другого крутить не будет.

Так что разница существенна. Поверь человеку который на 4-ядерной VPS в Германии держал hlds и сайты на одной машине кажется с 2013 года (съехал оттуда в этом году потому что хост с потрохами купили янки и перенесли сервера в другой ДЦ в СШП не предупредив клиентов о смене юрисдикции, и пинга 200+).


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 19.6.2024, 17:59
Сообщение #14
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

Metal Messiah, Всё верно, вот потому я и написал несколькими сообщениями ранее
Цитата
Я уже много раз на этом форуме писал о том, что игровой сервер cs 1.6 в разы выгоднее держать на одном VPS (один игровой сервер = один VPS). Брать сервер с несколькими ядрами и запускать там несколько серверов - это бред. Брать игровой сервер и держать параллельно с ним тяжелые веб-проекты это тоже бред.


Но проблема в том что большинство игровых серверов используют vCPU
Просто поверь, нет никакой разницы, если это не многопроцессорный физический сервер.


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 1.7.2024, 22:33
Сообщение #15


Иконка группы

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
Разница есть. Разложив через cpuset все на разные ядра вручную я избавился от фризов на сервере, было это в далеком... не помню, 2014 или 2015 и сервер просуществовал до весны этого года. А так обычно машинки одноядерные и я таким не страдаю.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: