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 문서에서 관련 명령을 찾을 수 없습니다. 디스크 캐시 및 프록시만 해당됩니다.

매우 감사합니다.

마빈

관련 정보