Jump to content

Чрезмерное поедание оперативной памяти.


Recommended Posts

Драсте, столкнулся с жуткой неприятностью. Конкретно - ниже:

Объём сервера - 508 мб, большая его часть - модели, коллизии и текстуры (ну кто бы сомневался).

При запуске МТА, она кушает 200-300 Мб, но вот после захода на такой сервер - она откровенно "жрёт" 1.7GB. После выхода с сервера, освобождается далеко не всё, и процесс становится объёмом в 700-800 Гб. После повторных попыток зайти и выйти с сервера, используемая память постоянно увеличивается в объёме, добавляя по 350-450 Мб к процессу. Долговременная игра и множество попыток перезахода - увеличивают процесс gtasa.exe до нескольких Гб, а-то и вовсе крашит.

  1. Игрокам с "деревянным" ПК играть на таком сервере практически невозможно. "Перезаход" на сервер создаёт проблемы с заменой коллизий, с заменой объектов и т.п.
  2. Игрокам с "очень деревянным" ПК играть вообще не удаётся, т.к. МТА благополучно "крашит" без каких либо окон и ошибок.
  3. Игрокам вообще не комфортно играть, осознавая то, что МТА может жрать больше, чем игры 2014 года.

Стоят три "пи*дец каких" серьёзных вопроса:

1. Как игрокам 2-х Гиговых БПАН серверов удаётся играть на таком сервере?

2. Почему при объёме контента в 508 мб - игра жрёт почти в 3 раза больше памяти, с 250 до 1750?

3. Почему в процессе многократного отключения от такого сервера, потреб-л-яемая ("б-л-я" без "-" из-за корявости форума заменяется на :О)  память растёт в геометрической прогрессии?

Edited by SalwadoR
Link to comment

Тоже хотелось бы разобраться, но нужно все понять. 

1) Речь идет обо всех серверах или о конкретном? Были ли тесты на локальном сервере?
2) Версия МТА клиента? Возможно какой-то коммит уже исправил эти утечки памяти.
3) МТА загружает все модели в память, идет нагрузка на ОЗУ, но думаю стоит провести тесты с заменой объектов/машин/игроков (кол-во замененных dff, txd, col, а также тип замены), чтобы понять где именно есть эти утечки, может быть dff подгружается без выделения ненужной памяти, а col наоборот, либо это все зависит от дополнительных свойств модели (свойства коллизии либо ещё что-то).

Если эти данные все подробно собрать, то можно создать большой инцидент на баг трекере и привлечь к этому внимание.

Edited by Kenix
Link to comment
20 hours ago, Kenix said:

1) Речь идет обо всех серверах или о конкретном? Были ли тесты на локальном сервере?

На 2х разных серверах, от совершенно разных разработчиков.

  1. 500+ метровый сервер, который набит моделями - кушает 1.7+ Гб с первого захода.
  2. Другой сервер, буквально 200+ Мб, а потребление 1.9+ Гб.
20 hours ago, Kenix said:

2) Версия МТА клиента? Возможно какой-то коммит уже исправил эти утечки памяти.

1.5.2, 1.5.3. Коммиты - не имеет значения (9500-10900), у всех опрошенных игроков практически идентичное потребление.

20 hours ago, Kenix said:

3) МТА загружает все модели в память, идет нагрузка на ОЗУ, но думаю стоит провести тесты с заменой объектов/машин/игроков (кол-во замененных dff, txd, col, а также тип замены), чтобы понять где именно есть эти утечки, может быть dff подгружается без выделения ненужной памяти, а col наоборот, либо это все зависит от дополнительных свойств модели (свойства коллизии либо ещё что-то).

Можно проверить, будет время - может опубликую результаты.

20 hours ago, Kenix said:

Если эти данные все подробно собрать, то можно создать большой инцидент на баг трекере и привлечь к этому внимание.

Судя по последним коммитам, занимаются хуетой (да, мог бы сам научиться и вносить полезные изменения и нововведения, ко ко ко). А судя по багтрекеру, ничего серьёзного не исправляется.

Просто будет +1 дыра в копилку. А потом вдобавок к CEF и OOP добавят скриптинг на NodeJS (=

Link to comment

@SalwadoR, ну во-первых наверное количество файлов может влиять, возможно что-то хранится в памяти без сжатия(ну типа как raw) или с легким сжатием(в этом то случае и должно от кол-ва больше зависеть).

Во-вторых что касаемо бпан, то у них col файлы редкость, поэтому если проверять с файлами, то начинать с col, да и замены там же в основном на машины.

В-третьих, маппинга точно меньше чем на твоем 500мб. Ну и если я не ошибаюсь, то у меня кушало ~1,3-1,4гб на wasteland. К слову отметить, это исключительно. Мог бы сказать что может что-то с защитой, но дело в том что сам замечал(на других серверах) проблемы что кеш маленький, а жрет много. А ну и от винды может зависеть ещё. Как-то проверял антивирусы, касперский жрал на xp 250-400мб, на 7 x86 150-250мб, на 7 x64 500-800мб. Ну это наверно единственный случай у меня, когда на 7 x86 что-то жрало меньше чем на xp. Ну а с x64, тема известная, все 32битное, потенциально может в два раза больше жрать на 64.

В тестах кстати смотреть нужно, не на свой специфичный контент(оптимизацию, уже давно в красную книгу занесли), а просто на контенты серверов которые жрут больше чем весит кеш, и те которые жрут +-кеш.

Не хочу никак дразнить, издеваться, но похоже есть какая-то специфика dayz, т.к. они всегда жрут много больше, и достичь <1гб, вообще кажется чем-то весьма тяжелым.

  • Like 1
Link to comment

@SalwadoR, win xp, x86 ессно. Сорри, что раньше не ответил, думал потестить и тогда уже с другими выводами сказать, но чет приболел и удачно потестить неудалось. Единственное что, минимально попробовал, загружал txd и col, пробовал множественно заменять буквально одним и тем же, но на иды разные. К моему удивлению, остановка ресурса, совершенно ничего не дала, не выгрузилось вообще ничего. Если это не баг какой-то, то надо проверить будет ли увеличение при замене одного и того же объекта. Поидее не должно быть, в таком случае может быть 2 решения по принципу подгрузки/выгрузки объектов по отдаленности, либо заменять выгружаемые очень маленькими моделями и текстурами, либо же и вовсе использовать набор моделей небольшого количества, заменяя их то на одни, то на другие.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...