
Я запустил демонстрационную систему на Linux со следующим ядром:
2.6.32-400.1.1.el5uek #1 SMP Пн Июн 25 20:25:08 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
И как только происходит подкачка, загрузка ЦП в системе достигает почти 100%, из которых около 90% приходится на загрузку ЦП sys. Мне сказали, что это ожидаемо, потому что демон страниц Linux включается и начинает записывать фрагмент памяти в подкачку только тогда, когда заканчивается память (или когда свободной памяти меньше 0,5 ГБ), что приводит к большой загрузке ЦП sys. "swappiness" в системе составляет 60.
Ожидается ли, что загрузка ЦП достигает 100% при выполнении подкачки в Linux?
Причина, по которой у меня возник вышеуказанный вопрос, заключается в том, что вышеуказанное поведение изменилось, когда я перенес демо на другую систему со следующим ядром Linux:
2.6.39-400.128.14.el5uek #1 SMP суббота 10 мая 00:06:52 PDT 2014 x86_64 x86_64 x86_64 GNU/Linux
Единственное отличие параметра vm в мигрированной системе, которое я заметил, — это параметр min_free_kbytes, который в мигрированной системе был изменен на 524288 по сравнению с 51200 в системе до миграции.
В мигрированной системе, когда объем свободной памяти становится менее 1,5 ГБ, происходит подкачка, затем загрузка ЦП немного увеличивается, примерно с 30% до 40%, а производительность приложений становится нестабильной только на короткий период, а затем все возвращается к норме, как и до подкачки.
Почему мигрировавшая система ведет себя настолько по-другому, что загрузка ЦП не достигает 100% при выполнении подкачки?
Это очень важная демонстрационная система, и объяснение двух вышеуказанных вопросов будет очень полезным. Любые идеи будут очень признательны.