Здравствуйте. Собирая информацию о сжатии памяти нашел статью
https://aloiskraus.wordpress.com/2016/10/09/how-buffered-io-can-ruin-performance/
но больше заинтересовал последний комментарий к этой статье.
Hi Sridhar, memory compression is on Windows Server disabled by default. Servers have copious RAM. The rationale behind this is if you have large applications which would cause page outs you are normally running on a many core server but memory compression is single threaded so it would not scale when many applications would page out memory. If memory compression would become multi threaded then it could itself become a bottleneck. The used compression Algo has (depending on CPU) a compression rate of ca. 200-300 MB/s and up to 500 MB decompression rate. That is en par with todays SSDs. If you have a storage connection with PCI Express SSDs which can transfer GB/s then single threaded compression will simply loose out. Memory compression is a good solution only for machines with spinning disks otherwise it can have adverse effects to e.g. CPU cache locality when a large spike of CPU ruins your L3 Cache hit rate. Things stay complex in todays world.
Утверждается, что из-за однопоточности механизма сжатия памяти его польза сомнительна.
На сколько, по вашему мнению, верно данное утверждение?
Спасибо.
- kpdozer спросил(а) 3 года назад
- последняя редакция 3 года назад
- Интересно. Я не могу ответить на ваш вопрос ввиду недостатка экспертизы в этом вопросе. Замечу, впрочем, что в посте он говорит «It is therefore a good idea for most workloads to keep memory compression enabled». Если считать механизм бесполезным на SSD, то совершенно нелогичным решением разработчика (Microsoft) выглядит включение его по дефолту в Windows 10, в принципе рассчитаной на SSD. У них, конечно, бывают странные решения, но это было бы уже слишком кмк.
- Спасибо за ответ. Я подозреваю, что Microsoft не включила сжатие на Windows Server, т.к. рисковать производительностью в серверном сегменте, который исключает системы с небольшим объемом памяти и медленными дисками не обосновано. В потребительском сегменте наоборот задача объять, как можно большее количество конфигураций ПК. Жаль, что информация из статьи пока ничем не подтверждена, и все это остается моими домыслами. Тем не менее субъективно (но заметно :)) на слабых процессорах (например, на Intel® Pentium® N3710) с достаточным объемом ОЗУ и SSD отключение сжатия увеличивает отзывчивость системы. Еще раз спасибо.
- Да, на сервере должно быть много памяти и быстрая дисковая подсистема, иначе все тупить будет. Но бывает, что памяти не хватает, и тогда оно имело бы смысл при мощном ЦП, если он недозагружен. На слабых процессорах отключение дает прирост, скорее, не из-за аспектов поточности сжатия памяти, а просто потому что отключение снимает задачу сжатия с ЦП (перекладывая работу на SSD). Ведь именно ЦП сжимает страницы. То есть идея в том, что когда память выбрана и пошла активная подкачка, ее объем уменьшается за счет сжатия памяти, т.е. работа перекладывается на ЦП. Наверное, хороший кандидат для сжатия — это core i3/i5 с недостатком памяти и HDD, т.е. типичный бюджетный ноутбук, куда покупателя завлекают процессором.
- Войдите для отправки комментариев
Сначала войдите.