Закрепить за сервером только 1 ядро.

Sergey Petrichenko

Участник
Сообщения
111
Реакции
0
Уважаемые форумчане, у меня имеется следующий скриптик для запуска cерверов
SCREEN_NAME="CSGO"
USER="****"
IP="********"
PORT="*******"

DIR_STEAMCMD="/home/game/Steam"
STEAM_LOGIN="anonymous"
STEAM_PASSWORD="anonymous"
STEAM_RUNSCRIPT="$DIR_STEAMCMD/runscript_$SCREEN_NAME"

DIR_ROOT="/home/game/CSGODeathmatch"
DIR_GAME="$DIR_ROOT/csgo"
DIR_LOGS="$DIR_GAME/logs"
DAEMON_GAME="srcds_run"

UPDATE_LOG="$DIR_LOGS/update_`date +%Y%m%d`.log"
UPDATE_EMAIL=""
UPDATE_RETRY=3

# Работы сообщества: https://developer.valvesoftware.com/wiki/CSGO_Workshop_For_Server_Operators
API_AUTHORIZATION_KEY="" # http://steamcommunity.com/dev/registerkey
WORKSHOP_COLLECTION_ID="125499818" # http://steamcommunity.com/sharedfiles/filedetails/?id=125499818
WORKSHOP_START_MAP="125488374" # http://steamcommunity.com/sharedfiles/filedetails/?id=125488374

# Игровые настройки
# /*Максимольное количество игроков*/
MAXPLAYERS="32"
TICKRATE="64"
# /* Параметры запуска сервера, знать их вы можете на нашем портале http://enix.su/nosteamserver.html в конце данной статьи */
EXTRAPARAMS="taskset -c 0 -nohltv +sv_pure 0 +sv_lan 0 +game_type 1 +game_mode 2 +mapgroup mg_bomb +map de_dust2"

PARAM_START="-game csgo -console -usercon -secure -autoupdate -steam_dir ${DIR_STEAMCMD} -steamcmd_script ${STEAM_RUNSCRIPT} -maxplayers_override ${MAXPLAYERS} -tickrate ${TICKRATE} +hostport ${PORT} +ip ${IP} +net_public_adr ${IP} ${EXTRAPARAMS}"
PARAM_UPDATE="+login ${STEAM_LOGIN} ${STEAM_PASSWORD} +force_install_dir ${DIR_ROOT} +app_update 740 validate +quit"

..........
.............
...........
Далее идут функции которые менять не стоит...

Суть проблемы в том что когда я ставлю в параметрах запуска taskset -c 0 - процесс прыгает с ядра на ядро. Всего 2 ядра.
Так вот подскажите, кто знает, как сделать так чтобы 1 сервер использовал только 1 ядро, без прыжков на другие ядра.

PS На серверах других игр это работает, здесь - нет.
PSS Лаунчер для запуска я нашел в интернете, сам не писал.
 
Последнее редактирование:

ykpon

Владыка
Сообщения
675
Реакции
399
Если у тебя два ядра, значит это виртуальные ядра. Одно физическое, два потока.
То есть, ядро 1 - это поток физического ядра 0, проще говоря.
У тебя просто процесс между потоками скачет.
Ничего страшного в этом нет.
Ну или можешь изменить taskset -c 0 на taskset -c 1.
 

Sergey Petrichenko

Участник
Сообщения
111
Реакции
0
Если у тебя два ядра, значит это виртуальные ядра. Одно физическое, два потока.
То есть, ядро 1 - это поток физического ядра 0, проще говоря.
У тебя просто процесс между потоками скачет.
Ничего страшного в этом нет.
Ну или можешь изменить taskset -c 0 на taskset -c 1.
Мне нужно именно чтобы на 1 потоке было. И не скакало. Под спойлером видно как я прописал. Но оно не работает. На сервере другой игры так прописано и все работает. 1 процесс - 1 ядро. А тут скачет
 

ykpon

Владыка
Сообщения
675
Реакции
399
Эм.
Мне нужно именно чтобы на 1 потоке было. И не скакало. Под спойлером видно как я прописал. Но оно не работает. На сервере другой игры так прописано и все работает. 1 процесс - 1 ядро. А тут скачет

Ну или можешь изменить taskset -c 0 на taskset -c 1.
 

Sergey Petrichenko

Участник
Сообщения
111
Реакции
0
Ну я ставлю и taskset -c 0 и taskset -c 1 эффект ноль. возможно нужно в другом месте прописывать? я так понимаю на VDS да и вообщее везде начинается отсчет с 0.... так? Значит 0 это 1 поток и 1 это 2 поток.
 

ykpon

Владыка
Сообщения
675
Реакции
399
Ну я ставлю и taskset -c 0 и taskset -c 1 эффект ноль. возможно нужно в другом месте прописывать? я так понимаю на VDS да и вообщее везде начинается отсчет с 0.... так? Значит 0 это 1 поток и 1 это 2 поток.

Пришли-ка вывод:
C-подобный:
cat /proc/cpuinfo | egrep "(model name|core id)"
 

Sergey Petrichenko

Участник
Сообщения
111
Реакции
0
model name : Common KVM processor
core id : 0
model name : Common KVM processor
core id : 1

Да. Так как я и говорил. Но почему когда я ставлю taskset -c 0 оно прыгает на второй поток....?
 

ykpon

Владыка
Сообщения
675
Реакции
399
taskset -c 0 - пиши это в самом начале. Из скрипта запуска убирай и запускай скрипт командой:
taskset -c 0 sh start.sh
Или как он у тебя там запускается.
 

ykpon

Владыка
Сообщения
675
Реакции
399

Red4911

Участник
Сообщения
133
Реакции
34
У меня вообще в конфиг вот такое встроено и нормально )
#----------------------------------------------------
# Номер ядра/процессора в линуксе
# 2х-ядерные: 0 - первое ядро, 1 - второе ядро
# 4x-ядерные: 0 - первое ядро ... 3 - четвертое ядро
# По аналогии с другими многоядерными процессорами
use_core=3
#----------------------------------------------------
 

Red4911

Участник
Сообщения
133
Реакции
34
А если процессор с гипер-трейдингом и имеет 2 ядра и 4 потока, например, то 0-1 - ядра, а 2-3 - их потоки.
1 Ядро+поток = 0,2.
2 Ядро+поток = 1,3.

У меня проц без HT. С ним надо уже потестить да посмотреть.
 
Сверху Снизу