Смена свопов приводит к проблемам

Пару дней назад я изменил перестановку ядра с 60 на 30.

У меня проблемы. При загрузке я вижу ошибки (только в Windows; насколько я знаю, Unity и X.org по-прежнему работают нормально), которые говорят о сбое программ и сообщении об этом, а также о том, что «обнаружена системная проблема» или что-то подобное, или «В Ubuntu 14.04 произошла внутренняя ошибка».

Как мне это исправить, не доводя мою перестановку до 60, или я не могу решить ее по-другому? Являются ли эти проблемы ошибками или это происходит, когда вы меняете swappiness?

0
задан 28 July 2014 в 19:48

1 ответ

Я возьму предположение здесь, беря комментарий OP, как предоставлено, который проблема может вернуться путем изменения swappiness назад на 60.

ядро Linux будет обычно превышать возможности доступности памяти. Если Вы уменьшаете swappiness, Вы говорите этому использовать область подкачки для меньшей степени для RAM, в которой программы нужны, как сбалансировано относительно использования RAM для кэшируемых данных файла. Если Вы устанавливаете swappiness на 0, Вы запрашиваете, чтобы Ваша область подкачки не использовалась вообще.

Однако даже с swappiness из 0, ядро Linux изменит свое поведение, после того как оно оценивает, что это близко к "из памяти" условие. Перед этим это не будет просто кэшировать данных файла в RAM. Но после того как это полагает, что исчерпывает память, это будет изменять свою стратегию и использовать любую доступную область подкачки несмотря на swappiness установка (если определенные особые условия не будут применяться).

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

При изменении swappiness от 60, tp 30 не изменяет общее пространство для выполнения, возможно, это действительно изменяет объем памяти, о котором ядро сообщает, чтобы быть доступным. Или это могло изменить поведение относительно момента времени, когда условие OOM определяется.

Поэтому, если Вы, оказывается, имеете только что о достаточном количестве RAM и подкачки для всего, что собирается запуститься, эффект, который Вы видите, могло бы быть неудачное поведение, когда переходы ядра от сверхсоздания отчетов до фактического обеспечения memeory, или когда это начинает полагать, что из условия памяти становится более вероятным. Эти код в vmscan.c , например (ответственный за освобождение памяти в RAM) резко изменит свое поведение в зависимости от такого радикального изменения условий.

0
ответ дан 28 July 2014 в 19:48

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

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