Потратил много времени, пытаясь найти информацию о способах выявления причин падения игрового сервера, но мало чего нашел. Поэтому решил обратиться за помощью к коллективному разуму. К тому же тема будет полезна всем, если в ней будут собраны все способы выявления причин падения серверов на движке Source.
Расскажу о самых вероятных причинах.
1. Неправильная установка сервера. Поможет внимательное прочтение инструкций по установке.
2. Неправильная установка модов (SM, MM и т.п.). Опять же, прочтение инструкций.
С первыми двумя пунктами особых проблем возникнуть не может, т.к. процесс установки сервера и модов на сервер расписан на многих интернет-ресурсах и на разных языках. Было бы желание читать. Далее сложнее.
3. Конфликты или ошибки плагинов для модов. Первым делом вы должны смотреть логи ошибок в папке с модом. Пробуйте отключать все плагины, вызывающие сомнения. Проверьте версии плагинов и обновите их до самых актуальных. В этом случае полезно читать последние отзывы и комментарии на оф. странице плагина, т.к. не всегда новое - лучшее. Не забывайте обновлять непосредственно сами моды (SM, MM и др.).
А теперь способ выявления причин падения сервера, который почти нигде не освещается, но при этом он является самым эффективным. Чтение дампов памяти и дебаг-логов после падения сервера.
Чтобы файл логов создавался, необходимо добавить в строку запуска сервера -debug
После падения в папке сервера появляется 2 файла: core и debug.log. Также происходит отправка мини-дампа в Valve.
Еще одна проблема в том, что какое-то время назад после одного из обновлений мини-дампы перестали сохраняться на сервере, а они тоже были бы полезными, если изучить их. Существует плагин для Metamod'а: Accelerator - Take back control, который перенаправляет дампы на другой сайт. К сожалению, с этим плагином серверы L4D2 моментально падают при запуске. Также есть способ указать в hosts адрес сервера Valve, как локальный. Но и этот способ не работает, т.к. там заморочки со SteamID.
Вопроса два.
1. Как определить, что вызывает падение сервера, опираясь на файлы core и debug.log?
2. Как получить мини-дампы, которые отправляются в Valve при падении сервера?
[SRCDS] Как определить причину падения?
/.ZoZo./ Zombie Zone - Серверы Left 4 Dead 2, Team Fortress 2, Killing Floor. Всегда рады хорошим игрокам!
Скрипты надо нормально писать и не по 5 штук за день а по одному тогда всё будет нормально, а если будет ошибка - легко определить где именно. Дебаг лог всегда пуст, причина падения выводится только в консоль перед тем как серв рестартится. В консол.лог причина тоже не записывается. Если ошибка в см, то надо смотреть соответствующие логи см и сопоставлять их с тем что выводится в консоли серва перед его рестартом. Если падения происходят постоянно через определенный интервал времени - надо сделать дамп памяти и смотреть утечки. Думаю как это делать все знают, чтоб такого не происходило при программировании надо просто быть внимательным и закрывать все хэндлы и анхукать хуки. Переполнение массивов если будет - появится сообщение в логах т.ч. эта проблема тоже легко устраняется. Ну а вообще по личному опыту могу сказать что раз в месяц-два серву свойственно падать.
Думаю тут больше нечего сказать.. на чистом с++ вроде плагины никто щас и не делает для серва, а кто делает тот знает как отладку делать.
С вальве нет смысла общаться, за 5 лет посылал им писем 40-50 с разными вопросами и проблемами. Они всегда просто давали пустые обещания.
Думаю тут больше нечего сказать.. на чистом с++ вроде плагины никто щас и не делает для серва, а кто делает тот знает как отладку делать.
С вальве нет смысла общаться, за 5 лет посылал им писем 40-50 с разными вопросами и проблемами. Они всегда просто давали пустые обещания.
Выяснилось, что дампы после падения пишутся в системную директорию /tmp/dumps/. Но только на лицензионном севере. Сервер с RevEmu не пишет. Видимо влияет измененный steamclient.
Открывать эти дампы можно через Visual Studio.
Открывать эти дампы можно через Visual Studio.
/.ZoZo./ Zombie Zone - Серверы Left 4 Dead 2, Team Fortress 2, Killing Floor. Всегда рады хорошим игрокам!
- kolobok66rus
- Капитан
- Сообщения: 266
- Зарегистрирован: 29.10.2010
- Поблагодарили: 4 раза
Ну я хотел бы добавить несколько строк...
1. Много ещё зависит от системы на которой стоит сервер
2. Если сервер no-steam , то так же зависит контингент заходящих клиентов (unknow , cracked и т.д. )
Вот могу привести пример падения моего Surf сервера :
Сначала он падал из-за переполнения ошибкой ERROR: invalid edict index when reticulating splines!
Это я устранил фиксом для SDK Hooks
Сегодня утром он упал из-за постоянного реконнекта одного игрока , который постоянно делал (time out )
Вывод : падения сервера надо смотреть по ситуации и соответственно принимать меры исходя из этой ситуации..
Дело в том что у меня 6 серверов , 2 из которых вапще не падают (тьфу тьфу тьфу ) , а остальные бывают 1 раз в 2-3 суток, MM и SM стоят одинаковые , всё одинаково . Так что тут палка в двух концах .
С уважением Алексей !
1. Много ещё зависит от системы на которой стоит сервер
2. Если сервер no-steam , то так же зависит контингент заходящих клиентов (unknow , cracked и т.д. )
Вот могу привести пример падения моего Surf сервера :
Сначала он падал из-за переполнения ошибкой ERROR: invalid edict index when reticulating splines!
Это я устранил фиксом для SDK Hooks
Сегодня утром он упал из-за постоянного реконнекта одного игрока , который постоянно делал (time out )
Вывод : падения сервера надо смотреть по ситуации и соответственно принимать меры исходя из этой ситуации..
Дело в том что у меня 6 серверов , 2 из которых вапще не падают (тьфу тьфу тьфу ) , а остальные бывают 1 раз в 2-3 суток, MM и SM стоят одинаковые , всё одинаково . Так что тут палка в двух концах .
С уважением Алексей !
CPU -AMD Phenom II X6 1100T Black Edition (HDE00ZF) 3.3 ГГц
MEM -SAMSUNG DDR-III DIMM 4Gb <PC3-10600> x4 - 16Гб
OC - Linux Debian 6.0.1 amd_64
Мой сервер CS:GO [NO-STEAM] : 46.48.26.209:27022
MEM -SAMSUNG DDR-III DIMM 4Gb <PC3-10600> x4 - 16Гб
OC - Linux Debian 6.0.1 amd_64
Мой сервер CS:GO [NO-STEAM] : 46.48.26.209:27022
- Jonny
- Полковник
- Сообщения: 1371
- Зарегистрирован: 30.05.2008
- Благодарил (а): 23 раза
- Поблагодарили: 54 раза
Есть еще один хороший способ - вернуть показ сообщений об ошибках, тогда сервер не закрывается сразу и можно прочитать что он вывалил в консоль.
Никакого отношения к нацистским группам и направлениям не имею.