Плагины бесплатно - делают люди с низкими навыками и те - кому делать не чего. Я думаю с этим можно согласиться, ибо все люди кого я знаю - и они перешли уровень джуна - ценят своё время и делают плагины уже за деньги и время у них постоянно забито, тобишь нет времяни на то - что бы фигней страдать.Хотел мое мнение? Да вот похрен мне, единственное что оставлю небольшой отзыв о хостинге.
Самому пришлось однажды с вами столкнуться, брал сервер раст сначала был минимальный тариф (все происходит в 2018, примерно в апреле) при установке базовых плагинов на рейты те же, тп и т.д (по возможности бесплатные из консоли), а так все те что из общего доступа, при заполнении сервера на 20 человек он начал лагать, окей поебали мозг, вам поебали (ТП) и ничего не получили из информации, кроме совета ваше грузит, купите наше. Взяли мощнее хост, проблемы вроде ушли, но возникли новые не все плагины хотели у вас работать, так как я был всего-то помощником, решал вопрос не я, но его решили. В результате вот такой ебли и зрч потраченых средств, мы просто свалили с вашего хостинга. Ну и как минус не возможно подключить другой магазин (ну овх к примеру) ведь геймсторес по честному полное дерьмо, которое при вашем повышении уровня, остаётся на прежнем.
Попрошу лично арендатора оставить отзыв о вас. И возникающие на пустом месте ошибки в консоли! не от плагинов, на других хостингах все то нормально. И ответы тп: По типу не обращайте внимание
Так вот - все что ты берешь из открытых источников - написано джунами которые как минимум не знают об оптимизации кода, как максимум - вообще не знаю почему нельзя юзать Linq и не знаю разницу между for и foreach. Поэтому такие плагины очень сильно нагружают сервер - особенно когда пишут любую инфу в консоль - коим - такой инфы от каждого плагина набирается тонна. А так и ресурсо затратная операция вывода в консоль, и реализация функций по доп логированиям, и операции по записи в файл всего этого флуда.
Идем дальше! Вы же все хотите супер сервер - ставите 70+ плагинов.... А как работает Oxide - не задаетесь, а оксид регистрирует каждую функцию как MethodInfo и когда хук отрабатыввается - он на 1 действие игрока вызывает эту функцию в 70 плагинах! MethodInfo.Invoke(почитай на досуге про ресурсо затратность каждого вызова). Так вот, и есть низко частотные действия по типу респавна или подключению к серверу, а есть - высоко частотные по типу удара, или OnPlayerInput или еще хуже - OnPlayerTick или NetworkTo - которые вообще чутли не на каждый пакет игрока реагируют. И естественно - вы начинаете набирать онлайн - серверу становится сложнее и появляются лаги -> вы теряете онлайн и обвиняете во всем хостинг -> идете на другой хост -> ставите плагины и на пустом сервере тестируете -> у вас не лагает(потому онлайна нет, действий нет)
А теперь давайте разберем чуть глубже - "почему на других хостингах не лагает а на алькаде лагает". Хм, может быт потому что на других хостингах машины лучше?(НЕТ), может быть потому что другие хостинги меньше людей сажают на машину.(Нет, за исключением когда у хостинга просто клиентов нету что бы машину забить), Может быть потому что другие хостинги лучше настраивают сервера и технологичнее?(Нет, все правки только у алькада и москвы, как и куча собственных систем и надстроек - так и технических специалистов которые на форумах не несут херню)
Все выше приведенные факты - полностью подленны. Машины i7-7700 и i7-8800(разнеца i7 и XEon в том, что i7 меньше ядер но ядра мощьные, а Xeon основывается на колличестве ядер - а мощьность разная, бывают даже говенные вариации). А я напомню - что игра однопоточная - а значит не может полноценно кушать больше 1 ядра. Нет, вы можете без условно дать все ядра - но пока не выполняются асинхронные операции по типу генерации NavMesh - то все остальные операции по обработке игрового процеса - в одном потоке вместе с вашими плагинами 70+ штук.
Далее идем- 1 сервер в холостую кушает 4-5+ гб оперативы. С онлайном 100 может кушать до 10-12 гигов. с 200 онлайном 15-20гб оперативы.
Исходим из этого - 8 ядер * 8гб на каждый сервер 64 гига оперативы нужно на 8 серверов... У алькада стоит в среднем по 5-6 серверов на каждой машине. Как это проверить? Да лехко! Берем и чекаем через SteamAPI скоько серверов на 1ом IP - http://api.steampowered.com/ISteamApps/GetServersAtAddress/v1?addr=37.230.137.12
Тоесть всё оптимально! А на тему того - что алькад фиксит разные баги и т д - то почему же всех постоянно ддосят а сервера на алькаде нет лежат, хм.... Может быть потому что алькад всех ддосит?(Нет, всё потому что все баги пофикшены а флуд трафикам не проходит из за хорошего корневого хостера. Иначе бы - кто то дампнул бы трафик и тем же трафикм и алькад бы повалил - если бы алькад ддосил кого то.) Помоему где то приводили выше - что баги найденые сливаются разработчикам - и разрабы даже платят за некоторые критичные баги!
Какие еще нужны аргументы? Ну в ответ на тему "Хостинг говно, потому что у меня лагает".... Псссссс! Напиши в плагине в любой функции while(true) ; а потом спроси у своего хостера - где бы ты не стоял - почему у тебя сервер завис =) И если он ответит - из за плагинов, то по советам
можешь смело менять хостинг и говорить что хост говно!
[automerge]1548142635[/automerge]
Пожалуйста... ты вроде бы умный человек... Ну думай прежде чем что то говорить!@Alukar, почему нет, как решение? Я уже много раз говорил, что нам помогло, да и не только мне. А ты кому-то помог в данной ситуации по сути? Кроме как пиздеть, что твои гении пофиксили это? Нет? И то еще сомнительно раз ваши сервера еще после этого падали. Я уже сомневаюсь, что тебя кто-то слушает, потому что от количество пиздежа и перевирания уши вянут.
Видишь? Тоесть код пропустит только если первым байтом будет байт под номером 34.
Напомнить в чем твой фикс заключался?
C#:
if (stream.ToString().Contains("34")){
return false;
}
1. ToString и string.Contains ресурсо затратные операции, можно было обойтись GetBuffer().Contains((byte)34) что снизило бы потребление ресов миниум в 10 раз
2. Ты вкурсе что такое пакет? Это набор байт - цифр от 1 до 255. Например Int32 это 4 байта, int64 - это 8 байт. Строка string вообще - столько байт сколько символов в ней + перед строкой всегда указатель Int16 или Int32 который 2-4 байта - и т д... Далее - что бы получить число в Int32 то эти 4 байта перемножаются друг между друг другом. как и во всех остальных числах - и явно там будет периодически проскакивать номер 34. А значит гденибудь в пакете с вероятностью 10-30% будет 34
3. ты ищешь просто наличие 34 в строке, а значит как текст - может быть и 134 и 234. Возвращаемся к 2му пункту с данной теорией.
4. Я выше код из игры привел - что требуется для валидации пакета - байт 34 первым. А это значит - что в 100% пакетов первым байтом будет 34.
Исходя из 4х пунктов - мне интересно, вам фикс помог от ддоса - или вообще от всего вместе с игроками? =)
ps... Я не в коимь случае не агрессирую и не пытаюсь кого либо дискредитировать. Я лишь пытаюсь внести ясность и развеять заблуждения. мой текст не несет не какого смысла ввести кого либо в заблуждение или обмануть - написанное является лишь правдой, доставерной информацией и логиой.
Последнее редактирование: