Назад | Перейти на главную страницу

Является ли сжатие подкачки в ОЗУ (ZSWAP) преимуществом на сервере Linux с SSD-дисками?

Я пытаюсь улучшить производительность (отзывчивость) веб-сервера во время редких случаев высокого использования памяти (90% ...), когда он начинает много менять местами, чтобы помочь ручному вмешательству быстрее и меньше подвержено ошибкам. Я не могу добавить на машину больше ОЗУ (32 ГБ ОЗУ + раздел подкачки 6 ГБ).

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

Предыдущее исследование 1999 г. [1] показывает, что чем быстрее ЦП по сравнению с операциями ввода-вывода, тем больше преимуществ от сжатого кэша подкачки, и это должно стать еще лучше по мере увеличения производительности ЦП. При использовании вращающихся дисков рекомендуется использовать сжатие подкачки.

Интересно, верен ли этот совет по увеличению производительности для серверов, у которых есть только SSD-диски. Здесь операции ввода-вывода намного быстрее, поэтому выгода ниже, чем с вращающимися дисками.

Реализация этой функции была представлена ​​в Linux 3.11 через zswap в 2012 г. [2]. У кого-нибудь есть опыт работы с ним на сервере, есть ли преимущество при использовании чисто SSD-накопителей?

[1] https://www.usenix.org/legacy/event/usenix99/full_papers/wilson/wilson.pdf

[2] https://events.static.linuxfound.org/sites/events/files/slides/tmc_sjennings_linuxcon2013.pdf

ОЗУ по-прежнему намного быстрее, чем SSD. Вы могли видеть, что диски NVMe рекламируются со скоростью 3 ГБ / с, помните, что оперативная память на современном ПК может быть 20-25 ГБ / с. И это всего лишь последовательные скорости, время произвольного доступа намного предпочтительнее ОЗУ, чем NVMe. Вы говорите о миллисекундах и наносекундах. SATA SSD еще медленнее.

Также помните, что Apple использует сжатие памяти, и каждый Mac (за исключением iMac начального уровня) использует очень быстрые SSD.

Чтобы улучшить отзывчивость систем, которые осуществляют пейджинг, в первую очередь не допускайте их пейджинга:

  • Уменьшите потребность приложения в памяти
  • Масштабируйте до большего количества экземпляров
  • Увеличение объема оперативной памяти в экземплярах

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

Хотя это может принести пользу, рассчитывайте потратить несколько часов на настройку, тестирование и мониторинг того, как он работает. Вместо этого подумайте о покупке еще 32 ГБ ОЗУ и, в первую очередь, не допускайте выхода страницы.