nginxのgzip_comp_levelの推奨値はいくつ?

はじめに

gzip_comp_level をいくつに設定したら良いのか分からなかったため調べました。

デフォルト

まず、デフォルト値は以下のように「1」に設定されており、1~9までの値を設定できます。この値を増やせば増やすほど圧縮率が上がり、同時にCPUコストも上がります。

構文:	gzip_comp_level level;
デフォルト:	gzip_comp_level 1;
コンテキスト:	http, server, location

応答の圧縮level を設定します。可能な値は1から9の範囲です。

ngx_http_gzip_module モジュール 日本語訳

圧縮率

pipinfo、jqueryの2つで圧縮率を比較された記事があったため引用します。

事例1 (pipinfo)

0    55.38 KiB (100.00% of original size)
1    11.22 KiB ( 20.26% of original size)
2    10.89 KiB ( 19.66% of original size)
3    10.60 KiB ( 19.14% of original size)
4    10.17 KiB ( 18.36% of original size)
5     9.79 KiB ( 17.68% of original size)
6     9.62 KiB ( 17.37% of original size)
7     9.50 KiB ( 17.15% of original size)
8     9.45 KiB ( 17.06% of original size)
9     9.44 KiB ( 17.05% of original size)

事例2 (jquery)

0    261.46 KiB (100.00% of original size)
1     95.01 KiB ( 36.34% of original size)
2     90.60 KiB ( 34.65% of original size)
3     87.16 KiB ( 33.36% of original size)
4     81.89 KiB ( 31.32% of original size)
5     79.33 KiB ( 30.34% of original size)
6     78.04 KiB ( 29.85% of original size)
7     77.85 KiB ( 29.78% of original size)
8     77.74 KiB ( 29.73% of original size)
9     77.75 KiB ( 29.74% of original size)

What is the best nginx compression gzip level?
I'm using nginx reverse proxy cache with gzip enabled. However, I got some problems from Android applications HTTP-requests to my Rails JSON web service. It see...

見ての通り、圧縮率は0から1にかけては大幅な効果がありますが、1以降は微量な効果しか期待できないようです。

まとめ

CPUコストを上げるほどの効果が見込めないため、gzip_comp_level はデフォルトの「1」のままで問題なさそうです。

ただ、CPUに余裕がある場合は4くらいに設定しても良いと思います。

コメント

タイトルとURLをコピーしました