Производительность
Честная версия: тяжёлые не скрипты. Тяжёлая карта.
[the_apocalypse_project] это конверсия всей карты поверх Лос-Сантоса, около 166 ymap и один MLO. У многих её ymap границы стриминга в километры, намного больше, чем props внутри. Поэтому движок считает, что половина карты в зоне видимости одновременно, и всё подгружается в один момент вокруг появляющегося игрока. Отсюда и нагрузка на пулы.
Настоящее решение в самих картах: сузить раздутые границы в CodeWalker, оставив безопасный запас. Это ценнее всех строк с пулами ниже.
Размеры пулов
Заголовок раздела «Размеры пулов»server.cfg увеличивает некоторые пулы через increase_pool_size (современный способ, gameconfig.xml больше не учитывается):
increase_pool_size "Building" 500increase_pool_size "StaticBounds" 2000increase_pool_size "EntityDescPool" 5000increase_pool_size "TxdStore" 8000increase_pool_size "FragmentStore" 4000increase_pool_size "fragInstGta" 800increase_pool_size "Object" 800# + interior/portal/occlusion, LightEntity, AttachmentExtensionОни умеренные специально, не максимум. Максимум стоит памяти на каждом клиенте, а Building сильно выше ~500 создаёт свои проблемы.
Оставь set onesync_population false. Фоновое население заполняет как раз те пулы, которые нельзя увеличить.
Лимиты зомби уже сами уменьшаются:
- время кадра сервера выше
Zombies.Net.perfBudgetMs(70) режет лимит, вплоть доperfMinFactor - общее число сущностей между
entitySoftиentityHard(1400 / 1900) тоже режет его, а выше hard пропадают самые дальние ходячие - у игрока с FPS ниже
fpsLowрядом меньше ходячих
Подбери perfBudgetMs по среднему времени кадра, которое показывает /znet на простаивающем сервере. Если твой сервер просто медленнее, значение по умолчанию будет постоянно срезать зомби.
На стороне клиента Streaming.PoolGuard.clientPedLimit (180) останавливает новых педов ходячих до заполнения пула педов, а аварийная чистка сначала убирает трупы, потом самых дальних ходячих.
resmon 1 -- client, per resource msprofiler record 500 -- then profiler view/znet -- zombie caps and server frame/pools -- client ped poolКоманды /bsperf нет, ресурсы не ведут внутренних таймеров. Используй resmon.
В октябре я прошёл по всем клиентским скриптам. Почти каждый цикл на кадр уже ограничен (в простое спит 250-1000 мс). Те немногие, что всегда идут каждый кадр, нужны движку каждый кадр (скрытие частей HUD, плотность населения, свет блэкаута). Если увидишь, что один из наших высоко в resmon в простое, это баг, скажи мне.
bs19.org · Privacy · Terms · Cookie settings
Cookies and outside content
The site only needs two essential cookies to keep you logged in and protect forms. Videos and streams from YouTube and Twitch load from their servers, which can set their own cookies, so they stay off until you say yes. Nothing is pre-ticked and you can change your mind any time with "Cookie settings" at the bottom of every page. Details.
Questions about the server, the framework or the site? A real person reads this, usually within a day.