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