Я запускал демонстрационную систему в 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% приходится на использование ЦП. Мне сказали, что это ожидаемо, потому что запускается демон страниц Linux и начинает писать блок памяти для замены только при нехватке памяти (или свободной памяти менее 0,5 ГБ), что приводит к большой загрузке системного процессора. "swappiness" - 60 в системе.
Ожидается ли поведение загрузки процессора до 100%, когда в Linux происходит своп?
Причина, по которой у меня возник вышеупомянутый вопрос, заключается в том, что описанное выше поведение изменилось, когда я перенес демонстрационную версию в другую систему со следующим ядром Linux:
2.6.39-400.128.14.el5uek # 1 SMP Sat 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%, когда происходит своп?
Это очень важная демонстрационная система, и объяснение двух вышеупомянутых вопросов будет очень полезным. Любые идеи будут очень цениться.