proxy_cache / fastcgi_cache / uwsgi_cache / ...

Gena Makhomed gmm на csdoc.com
Вс Июл 31 18:53:18 UTC 2011


On 31.07.2011 20:59, Igor Sysoev wrote:

>> Нужен ли мне mod_deflate Апача для
>> комбинации Apache2+Nginx и включенным
>> сжатием у последнего?

> Не нужен. И даже вреден, если используется кэширование на nginx.

не было бы более эффективным сохранять в cache сразу сжатый
через gzip -9 ответ, чтобы потом не тратить время и ресурсы
процессора, сжимая этот контент при каждой отдаче клиентам?

...и потом только *меньшей* части клиентов, которым надо отдать ответ
в не-сжатом виде - им можно будет на лету контент разжать и отдать.
причем, дисковая подсистема при этом будет испытывать меньшую нагрузку,
потому что надо будет (значительно) меньший объем данных читать/писать.

да и операция gunzip выполняется быстрее, чем gzip,
создавая тем самым меньшую нагрузку на CPU сервера.

да и ответ на запрос из кеша nginx сможет отдавать для *большинства*
клиентов гораздо более эффективно, используя системный вызов sendfile()

объем оперативной памяти для современных серверов - это уже
давно не проблема, самым узким местом будет сначала дисковая
подсистема (при random read / random write), потом CPU,
и только после этого - узким местом будет объем памяти.

сейчас - если клиент понимает сжатый контент (большинство клиентов
в современном интернете) - nginx считывает контент с диска в открытом
виде, на лету его сжимает заново для каждого клиента и только потом
отдает клиенту. и сейчас - только для *меньшей* части клиентов - может
отдать его более эффективно, напрямую из файла кеша через sendfile()

P.S. это будет также актуально и в ближайшем будущем, если кто-то
разместит кеш nginx на SSD устройстве, - чтобы уменьшить износ SSD,
записывая на него при каждом обновлении кеша меньший объем информации, 
сохраняя в кеше сразу уже только сжатый вариант кешированного контента.

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru