У меня есть 8 ГБ ОЗУ Linux, на котором работают 4 сервера Tomcat. Один из них установлен на 3000 МБ памяти (jvm -Xms и -Xmx), а другие на 1500 МБ. Раздел подкачки также установлен на 8Gigs. Когда я запускаю эти серверы, использование файла подкачки низкое. Но в течение нескольких дней и в определенные моменты, когда один / все серверы находятся в пиковой активности, использование свопа начинает увеличиваться. Вот типичный вывод sar -r.
kbmemfree kbmemused% memused kbbuffers kbcached kbswpfree kbswpused % swpused kbswpcad
48260 8125832 99,41 196440 2761852 7197688 1190912 14,20 316044
75504 8098588 99.08 198032 2399460 7197688 1190912 14.20 316032
Это показывает 14,2% своп, используемый в настоящее время. Самое смешное, что этот% НИКОГДА не уменьшается . Продолжает расти и доходить до 30-40% . Мы перезапускаем наши серверы еженедельно.
Я бы предположил, что % swpused увеличивается в периоды пиковой активности и уменьшается в периоды низкой активности. Или, по крайней мере, остается постоянным. Похоже, что пространство подкачки никогда не возвращается ОС.
Вывод free: free -m всего использованных свободных общих буферов, кэшированных. Mem: 7982 7937 45 0 32 2088 - / + буферов / кэш: 5816 2166 Swap: 8191 1163 7028
Так что есть как минимум 2 г бесплатного барана. Таким образом, вопрос в том, почему пространство подкачки продолжает увеличиваться и не используется ОС? Или как отладить это, чтобы выяснить, что происходит ..