mmap() を使用して Nginx メモリキャッシュを有効にする方法

mmap() を使用して Nginx メモリキャッシュを有効にする方法

私はnginxマネージャを初めて使用します。私はQUICを介してHTTP / 3のような機能を得るためにnginx-quicを使います。しかし、HTTP / 3はHTTP / 2に比べてパフォーマンスが2〜3倍遅く、ラップサーバーを最適化しようとしています。 (テストケースは1GiB MP4ビデオです。)

明らかに、nginxは標準のopen()/ read()メカニズムを介してMP4ファイルをメインメモリにロードします。開いているファイルのリストからわかるように:

root@efk:~# lsof -p 31433
COMMAND   PID     USER   FD      TYPE             DEVICE   SIZE/OFF    NODE NAME
nginx   31433 www-data  cwd       DIR              253,0       4096       2 /
nginx   31433 www-data  rtd       DIR              253,0       4096       2 /
nginx   31433 www-data  txt       REG              253,0   22118168 1978901 /usr/sbin/nginx
nginx   31433 www-data  mem       REG              253,0      31680  786667 /lib/x86_64-linux-gnu/librt-2.27.so
nginx   31433 www-data  mem       REG              253,0     253944  786523 /lib/x86_64-linux-gnu/libnss_systemd.so.2
nginx   31433 www-data  mem       REG              253,0      47568  786659 /lib/x86_64-linux-gnu/libnss_files-2.27.so
nginx   31433 www-data  mem       REG              253,0      97176  786656 /lib/x86_64-linux-gnu/libnsl-2.27.so
nginx   31433 www-data  mem       REG              253,0      47576  786661 /lib/x86_64-linux-gnu/libnss_nis-2.27.so
nginx   31433 www-data  mem       REG              253,0      39744  786657 /lib/x86_64-linux-gnu/libnss_compat-2.27.so
nginx   31433 www-data  mem       REG              253,0    2030928  786645 /lib/x86_64-linux-gnu/libc-2.27.so
nginx   31433 www-data  mem       REG              253,0     116960  786976 /lib/x86_64-linux-gnu/libz.so.1.2.11
nginx   31433 www-data  mem       REG              253,0     461008  786609 /lib/x86_64-linux-gnu/libpcre.so.3.13.3
nginx   31433 www-data  mem       REG              253,0    1700792  786651 /lib/x86_64-linux-gnu/libm-2.27.so
nginx   31433 www-data  mem       REG              253,0      39208  786649 /lib/x86_64-linux-gnu/libcrypt-2.27.so
nginx   31433 www-data  mem       REG              253,0     144976  786664 /lib/x86_64-linux-gnu/libpthread-2.27.so
nginx   31433 www-data  mem       REG              253,0      14560  786650 /lib/x86_64-linux-gnu/libdl-2.27.so
nginx   31433 www-data  mem       REG              253,0     179152  786619 /lib/x86_64-linux-gnu/ld-2.27.so
nginx   31433 www-data  DEL       REG               0,18            3262848 /[aio]
nginx   31433 www-data  DEL       REG                0,5            3262840 /dev/zero
nginx   31433 www-data    0u      CHR                1,3        0t0       6 /dev/null
nginx   31433 www-data    1u      CHR                1,3        0t0       6 /dev/null
nginx   31433 www-data    2w      REG              253,0       3576 4064444 /var/log/nginx/error.log
nginx   31433 www-data    3u     unix 0xffff8f68c5349000        0t0 3262844 type=STREAM
nginx   31433 www-data    4w      REG              253,0          0 4064327 /var/log/nginx/access.log
nginx   31433 www-data    5w      REG              253,0       3576 4064444 /var/log/nginx/error.log
nginx   31433 www-data    6w      REG              253,0      14289 4068656 /var/log/nginx/access-ssl.log
nginx   31433 www-data    7w      REG              253,0      16943 4068657 /var/log/nginx/error-ssl.log
nginx   31433 www-data    8u     IPv4            3262832        0t0     TCP *:http-alt (LISTEN)
nginx   31433 www-data    9u     IPv6            3262833        0t0     TCP *:http-alt (LISTEN)
nginx   31433 www-data   10u     IPv4            3262834        0t0     TCP *:8443 (LISTEN)
nginx   31433 www-data   11u     IPv4            3262835        0t0     UDP *:8443
nginx   31433 www-data   12u     IPv6            3262836        0t0     TCP *:8443 (LISTEN)
nginx   31433 www-data   13u     IPv6            3262837        0t0     UDP *:8443
nginx   31433 www-data   14u     IPv4            3262838        0t0     UDP *:8443
nginx   31433 www-data   15u     IPv6            3262839        0t0     UDP *:8443
nginx   31433 www-data   16r      REG              253,0 1111252479 3148096 /home/www/media/LandArt/LandArt_Novoselec/Land_Art_Ozalj_2020.mp4
nginx   31433 www-data   18u     unix 0xffff8f68c5349c00        0t0 3262847 type=STREAM
nginx   31433 www-data   19u  a_inode               0,13          0    9700 [eventpoll]
nginx   31433 www-data   20u  a_inode               0,13          0    9700 [eventfd]
nginx   31433 www-data   21u  a_inode               0,13          0    9700 [eventfd]
root@efk:~#

特に、この行は、MP4がmmap()ファイルではなく通常のファイルのように開いていることを示すために重要です。

nginx   31433 www-data   16r      REG              253,0 1111252479 3148096 /home/www/media/LandArt/LandArt_Novoselec/Land_Art_Ozalj_2020.mp4

私はapache2のMMapFileディレクティブを介してメモリmmap()キャッシュを実装したいと思います。

apache2のメモリマッピングファイルはlsof出力から次のようになります。

apache2 7778 root  mem    REG   253,0    25076 2496871 /home/www/alu/cms/upload/vijesti/promo/fanzin_skola_hodanja/FRANCUSKI_INSTITUT_13__smb1.jpg
apache2 7778 root  mem    REG   253,0    98367 2490374 /home/www/alu/cms/upload/vijesti/predavanja/Branko_Senoa__deform__sfw.jpg
apache2 7778 root  mem    REG   253,0   147284 2500369 /home/www/alu/cms/upload/vijesti/pozivnice/aluperspektiva_program_plakat_2019.pdf
apache2 7778 root  mem    REG   253,0     5812 2492772 /home/www/alu/cms/upload/vijesti/promo/KtT/KunstTeatar_Tresnjevka__Sl8__smb1.jpg
apache2 7778 root  mem    REG   253,0    38218 2492832 /home/www/alu/cms/upload/vijesti/predavanja/Zvjezdana_Jembrih__Pretkrscansko_u_krscanskom__smb1.jpg
apache2 7778 root  mem    REG   253,0    26240 2496678 /home/www/alu/cms/upload/vijesti/predavanja/Predavanje_i_promocija_u_Atelieru_Mestrovic_image001__smb1.jpg
apache2 7778 root  mem    REG   253,0   111703 2247498 /home/www/alu/cms/upload/vijesti/plakat_martinis.jpg
apache2 7778 root  mem    REG   253,0   123947 2496574 /home/www/alu/cms/upload/vijesti/plakati/VODIC_za_brucose_ak.god._2017._2018._za_web-alu.pdf
apache2 7778 root  mem    REG   253,0   319054 2492595 /home/www/alu/cms/upload/vijesti/natjecaji/Natjecaj_za_upis_na_studij_Intelektualno_vlasnistvo_ak.god._2019-2020.pdf
apache2 7778 root  mem    REG   253,0     7996 2496738 /home/www/alu/cms/upload/vijesti/projekti/Ana_Husman_6_sa_7_METARA_image1.jpg
apache2 7778 root  mem    REG   253,0    22264 2496648 /home/www/alu/cms/upload/vijesti/predavanja/Looking_Forward_to_Yesterday__Slika-2__timo-i-nadia__smb1.jpg
apache2 7778 root  mem    REG   253,0      192 2499950 /home/www/alu/contenido/images/but_ok.gif

nginx ドキュメントに関連するコマンドが見つかりません。ディスクキャッシュとプロキシのみが適用されます。

とても感謝しています。

マービン

関連情報