Ubuntu 16.04 едва использует своп

Я пытаюсь настроить сервер с 4 Гб оперативной памяти, используя 32-битную Ubuntu 16.04 LTS, и столкнулся с интересной проблемой, с которой, надеюсь, мне удастся помочь.

Я пытаюсь обработать некоторые большие файлы данных на этом новом сервере с помощью python, но python падает с ошибкой памяти (он запускает наш ram). Я установил раздел подкачки с объемом памяти в несколько ГБ, но сервер практически не использует этот раздел.

Едва ли это важное слово, так как используется своп на сумму около 80 Мб. Поэтому я думаю (пожалуйста, поправьте меня, если я ошибаюсь здесь), что своп настроен правильно, так как система использует его.

Теперь я попытался поиграть с swapiness, но это, похоже, не помогает (текущее значение равно 100).

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

Кто-нибудь сможет мне объяснить, почему Ubuntu не может использовать свою память подкачки и просто выдает ошибку памяти?

Заранее спасибо,

Приветствия, Гильберт

0
задан 23 July 2019 в 02:10

1 ответ

32-разрядный процесс не будет использовать больше что 4 ГБ памяти, реальной или виртуальной.

Используя PAE [*] позволяет ОС использовать больше чем 4 ГБ RAM, но каждый процесс все еще ограничивается 4 ГБ виртуального пространства.

Если Вы хотите использовать больше RAM, чем это в процессе, необходимо использовать 64-разрядный ЦП, 64-разрядную ОС и 64-разрядные приложения (т.е., интерпретатор Python).

Если Вы хотите придерживаться 32-разрядной ОС, то посмотрите, можно ли разделить процесс Python на несколько процессов что каждое использование менее чем 4 ГБ RAM.

[*] IIRC все последние 32-разрядные ядра Ubuntu включает поддержку PAE.

1
ответ дан 23 October 2019 в 09:37

Другие вопросы по тегам:

Похожие вопросы: