LINUX.ORG.RU
решено ФорумGames

Ark: Survival Evolved - утечка памяти

 , ,


2

1

В последнем обновлении у линукс версии игры стала течь память с огромной скоростью: к примеру, у меня 16 гигов RAM и 8 гигов свапа, с момента запуска игры они забиваются до конца где-то минуты за 2-3. Пробовал делать проверку файлов, удалял моды - ничего не помогло. Обращаться к разрабам бесполезно, баги этой игры живут с 2015 года.

Вопрос, можно ли как-нибудь ограничить RAM процессу игры? Вроде есть какая-то cgroups в systemd, это оно?

Вроде есть какая-то cgroups в systemd, это оно?

Типа того. У тебя будет игра прибиваться, если переплюнет лимит.

Каштан.

anonymous
()

Можно попробовать ограничить потребление через жёсткий и мягкий лимиты. К примеру nice или cgroups. Давно таким занимался и точнее не смогу подсказать.

NAY_GIGGER
()

Вопрос, можно ли как-нибудь ограничить RAM процессу игры?

Так а смысл? она просто вылетит и всё.

Sunderland93 ★★★★★
()
Ответ на: комментарий от hetake2

Не думаю. Ей 8 гигов за глаза хватает.

Мало, что ты думаешь.

У этих лимитов не волшебного средства сделать так, чтобы программа работала без проблем с меньшей памятью.

Каштан.

anonymous
()
Ответ на: комментарий от xDShot

Они с каждой обновой добавляют больше багов, и есть баги, которые не фиксятся аж с 2015 года. Что тут непонятного? В протоне не работает мультиплеер из-за античита.

hetake2
() автор топика
Ответ на: комментарий от BceM_IIpuBeT

Идея отличная, даже попробую рефанд сделать

hetake2
() автор топика
Ответ на: комментарий от hetake2

Если в попу вставить пробку то срать не расхочется все равно.

aplay ★★★★★
()
Ответ на: комментарий от hetake2

Так память течет, игра просто упадёт с ошибкой о нехватке памяти и всё. 8 гигов ей хватает при нормальном потреблении.

Sunderland93 ★★★★★
()

cgroups

Можно, но скорее всего это тебе не поможет.

Делай так:

# Тебе нужен рут. sudo не прокатит
sudo su 

# Создаёшь папку, где будет вся движуха. ark - можно любое другое имя на твой вкус
mkdir /sys/fs/cgroup/memory/ark

# Указываешь лимит памяти в байтах. Здесь пример для 1 ГБ
echo $((1 * 1024 * 1024 * 1024)) > /sys/fs/cgroup/memory/ark/memory.limit_in_bytes

# Выключаешь oom killier, если хочешь, чтобы система не убивала твоё приложение при нехватке памяти
echo 1 > /sys/fs/cgroup/memory/ark/memory.oom_control

# Запускаешь игру (не из под рута, конечно же)
...

# добавляешь pid в файл, где process-name - имя процесса с игрой
pidof process-name > /sys/fs/cgroup/memory/ark/cgroup.procs

# Всё. При перезапуске игры тебе нужно будет повторить только последнюю строчку с внесением pid процесса
ox55ff ★★★★★
()
Последнее исправление: ox55ff (всего исправлений: 1)
Ответ на: комментарий от Sunderland93

Прикол в том, что она течёт ровно до того, как забьётся свап. В конце остаётся 1 гиг оперативки и становится относительно играбельно, сама игра не вылетает.

hetake2
() автор топика
Ответ на: комментарий от ox55ff

В общем, спасибо тебе огромное за инструкцию, только она под Арч не подходит, пришлось немного переделать под себя.

Выставил лимит в 8 гигов, запустил игру и подождал где-то минут 5. Игра съела 10 гигов и перестала дальше течь. Походу работает)

Попробовал выставить 6 гигов, всё равно упирается в 10 гигов. Ну теперь хотя бы играть можно вместе с браузером и дискордом, и даже ничего не тормозит.

hetake2
() автор топика
Ответ на: комментарий от hetake2

У меня арч )))

Выставил лимит в 8 гигов <…> Игра съела 10

Странно. У меня чётко границу соблюдает. Правда swap отключен. Может из-за этого.

ox55ff ★★★★★
()
Ответ на: комментарий от hetake2

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

Neresar ★★
()
Ответ на: комментарий от Neresar

Играл и на винде, и на линуксе. Так сказать, есть с чем сравнить. Играю со всеми ДЛС, всё прекрасно работает. Если нужна компания, можем вместе повыживать.

hetake2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.