headline news

Nginxのopen_file_cacheに係る特記事項

日付
編集
分類
画像4枚
PV日0 月0 年735
58.33%

エロジン新システム開発中にこのようなバグが見つかりました。

GZip圧縮されたHTMLファイルを少し書き換えて量を減らす(インデックスページの表示記事数30を20に変更)してキャッシュの消去とハードの再読込した場合
2

1/4
0
20秒間アクセスができない。

nginx/error.log
pread() read only 3275 of 3368 from "/var/www/html/erozine/dev/index.html.gz"while sending response to client, client:52.144.147.119. server:erozine.jp, request :"GET /var/www/html/erozine/dev/index.html.gz HTTP/2.0 ", host:erozine.jp

GZip圧縮されたHTMLファイルを少し書き換えて量を増やす(インデックスページの表示記事数30を40に変更)してキャッシュの消去とハードの再読込した場合
1
2/4
1
HTMLファイルが途中で欠けている

事の発端
まえがき:GZIP圧縮すれば20KBのHTMLファイルを5KBに減量できます。

Nginxでgzip onにしてHTMLファイルが読み込まれた時にエロジンサーバ側でgzip圧縮して圧縮されたファイルをあなたのPCに送信し、あなたのブラウザでgzipファイルを展開します。エロジンサーバで圧縮処理しているので少し負担がかかります。

そこでHTMLファイルを圧縮した状態にしておきます。読み込まれた時点で圧縮するのではなく、PythonやPHPを使って既にHTMLをGZに圧縮させてSSDに置いておきます。NginxのGzip_static ONにすることで既に圧縮されたファイルを送信することができます。

原因
本来はHTMLファイルとGZIPファイル両方を置いて置かなければなりません。
GZファイル

3/4
0
しかしこれでは美徳感がありませんのでGZファイルのみ置くことにしました。それが原因でエラーとなりました。

本題はGZだけ置いても別に問題なく読み込むことはできるのですが、ファイルに少し変更を加えることによって上記エラーが生じるということです。記事自体は誤字などで編集することはそんなにありませんが、記事のPVや評価良い悪いの数値は頻繁に変わってきます。この僅かな数字が変わるだけで読み込まなくなったり欠けてしまうのは大変恐ろしいことでしょう。

色々試行錯誤し、Nginxのopen_file_cacheの設定を解除するとエラーが消えました。上記エラーで20秒間アクセス出来ないのはinactive=20sの部分でした。

Nginx open file cache
4/4
2
ファイルのアクセス情報のキャッシュ

Nginxがアクセスするファイル情報のキャッシュも行えます。ドキュメントにはファイルディスクリプタを初め、サイズと更新時間などが保存されるようです。一定期間の間に連続してアクセスがあるファイルの情報を保持し続けることで、ファイルのオープン/クローズのオーバーヘッドを無くすためのキャッシュです。

ドキュメントにはファイルディスクリプタを初め、サイズと更新時間などが保存されるようです。一定期間の間に連続してアクセスがあるファイルの情報を保持し続けることで、ファイルのオープン/クローズのオーバーヘッドを無くすためのキャッシュです。参考サイト

Nginxがアクセスするファイル情報のキャッシュをかけることでGzip圧縮されたファイルを僅かに変更させてもキャッシュは同じようなものとして扱うが、読み込み時にサイズByteが若干違っているのでエラーを巻き起こしているということです。細かいことはよくわかりませんが原因が解明できて良かったです。ただ解明できても、Open_file_cacheは大事なので外せません。結論はやはりHTMLファイルとGZファイルを同じ場所に置くということになり、無駄な時間を過ごしました。完

  • 🥰抜けました
    5
  • 🥹感動しました
    1
  • 😆笑いました
    1
  • 🤔意味わからんです
    1
  • 😡胸糞悪かったです
    1
  • 😣萎えてしまいました
    3
  • 投票する
この記事をブックマーク
    日付
    編集
    分類
    画像4枚
    PV日0 月0 年735
    58.33%
    お読み頂きありがとうございました!
    Thanks Good Read again!
    コメントを書き込め
    本文必須 最低2字 最大400字 名前空欄可 最大20字
    コメント一覧
    1
    a3d55c

    ee

    0
    0
    返信
    2
    e10bef

    He woke up with a piece of wood and well, I had to help him f1nd me on megangoldberg_mooo_com change _ to dot

    0
    0
    返信
    関連記事
    2019年10月17日(木)の台風が過ぎ去った日に備えておいた画像126枚のサムネイル画像
    2019年10月17日(木)の台風が過ぎ去った日に備えておいた画像126枚
    日0 月280 年3.2k
    103
    21

    ee18件

    2018年12月31日(年末)に温存した画像集110枚のサムネイル画像
    2018年12月31日(年末)に温存した画像集110枚
    日0 月4.42k 年5.73k
    71
    23

    ee21件

    何度も台風が攻めてくる夏休みが終わって涼しくなるはずの137枚画像収集のサムネイル画像
    何度も台風が攻めてくる夏休みが終わって涼しくなるはずの137枚画像収集
    日0 月735 年6.87k
    111
    43

    ee21件

    この夏最後の画像集123枚のサムネイル画像
    この夏最後の画像集123枚
    日0 月2.48k 年4.97k
    70
    25

    ee9件

    インターネットの世界から集めた大したことのない画像ファイル139枚のサムネイル画像
    インターネットの世界から集めた大したことのない画像ファイル139枚
    日0 年868
    36
    17

    ee4件

    20201010にアルバムの削除済みを復元してアップロードした115枚のピクチャズのサムネイル画像
    20201010にアルバムの削除済みを復元してアップロードした115枚のピクチャズ
    日0 年1.54k
    79
    12

    ee29件

    だいぶ前に保存した懐かしめの画像が貼ってある記事のサムネイル画像
    だいぶ前に保存した懐かしめの画像が貼ってある記事
    日0 月1.2k 年4.74k
    22
    12

    ee2件

    一昨年に保存した最高の画像を晒した記事のサムネイル画像
    一昨年に保存した最高の画像を晒した記事
    日0 月3.35k 年4.13k
    12
    10

    ee4件

    連休明けの誰が為に保存した139枚のかけがえのない何かのサムネイル画像
    連休明けの誰が為に保存した139枚のかけがえのない何か
    日0 月301 年6.12k
    34
    11

    ee21件

    ウォシュレット中に保存したオーソドックスで比較的ソフトな画像集130枚のサムネイル画像
    ウォシュレット中に保存したオーソドックスで比較的ソフトな画像集130枚
    日0 月1.97k 年19.43k
    77
    14

    ee28件

    広告