Sziasztok,
nginx-ből szeretném megoldani, hogy a statikus fájlokat memcached-ből szolgálja ki, aminek az egyik részét sikerült megoldani,
jelenleg megnézi, hogy benne van-e memcached-ben az adott fájl, ha igen, akkor kiszolgálja onnan, ha nem, akkor simán a diszkről,
viszont azt még nem sikerült megoldanom, hogy be is rakja memcached-be a fájlt. Van valakinek ötlete mi lehet a megoldás?
server {
listen 80;
server_name assets.domain.hu;
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|txt|xml)$ {
set $memcached_key "assets:$request_uri";
memcached_pass db01.vpn:11211;
error_page 404 = @cache_miss;
}
location @cache_miss {
root /srv/assets.domain.hu;
}
}
Előre is köszönök minden segítséget!
Hozzászólások
- Mi az, ami nincs benne a memcacheben?
A statikus fájlt nem tudom hogyan rakjam be memcache-be (lehetőleg az nginx oldja ezt meg magától).
Kérdés: generált fájl X percig memcache-ból kiszolgálása okés.
Statikus fájl memcache-elését viszont nem értem, hiszen a statikus fájl eleve cache-elődik a Linux kernel miatt. Azaz újabb kiszolgálása esetén a memóriából kerül elő, tehát nem olvasódik a SATA kábelen keresztül. Mondjuk a "noatime" opció hasznos gyorsítás lehet.
Logikus lenne amit mondasz, viszont a valóságban nem állja meg a helyét. A méréseim szerint az nginx 15-20%-al gyorsabban szolgálja ki memcache-ből a statikus fájlokat. Szóval nem csak a hasamra ütöttem, és döntöttem, hogy no én akkor most memcache-be pakolok mindent.
Milyen kapcsolaton? 10Gb?
Nekem 1 Gb-nél még a lemez sem volt eddig szűk keresztmetszet, nemhogy a cache.
A /etc/fstab-ban a "noatime" opcióval próbáltad? Ekkor ugyanis nem ír vissza a diszkre (diszk cache-be) minden kiszolgálás után elérési időt.
Ezt hogy érted? 1db fájl lekérése annyival gyorsabb? A gép csúcsterhelésen annyival többet tud kiszolgálni?
tmpfs-re tett docroot-tal próbálkoztál?
Gyorsabb - mihez kepest? Azert azt latni kell, hogy a memcache plusz egy hibalehetoseg es a modul nem is a leggyakrabban hasznaltak koze tartozik. Ezzel szemben van egy gyorsulasod, amit nem tudom, hogy ertel el mert nekem random 50k-s fajlokkal sikerult mar gigabiteket is kikoppantanom nginx-szel. Sztem merjel ujra, ha lehet, akkor valos terhelessel, es ott optimalizalj, ahol tenyleg szukseg van ra.
--
Pásztor János
Üzemeltető Macik
azt irja, hogy "A response should be put in memcached in advance by means external to nginx."
https://www.igvita.com/2008/02/11/nginx-and-memcached-a-400-boost/
tehat neked kell kulso programmal berakni memcache-be az cuccot. pl orankent felolvassa egy script a /www/akarmi/static mappat, es belapatolja memcachebe, a megfelelo kulcshoz a fajlokat.
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
-- törölve - h*lyeséget írtam --
https://www.digitalocean.com/community/tutorials/how-to-install-and-use…
-torlendo-