nginx cache mounted on tmpf getting fulled
Peter Booth
peter_booth at me.com
Tue Jan 17 01:37:21 UTC 2017
I'm curious, why are you using tmpfs for your cache store? With fast local storage bring so cheap, why don't you devote a few TB to your cache?
When I look at the techempower benchmarks I see that openresty (an nginx build that comes with lots of lua value add) can serve 440,000 JSON responses per sec with 3ms latency. That's on five year old E7-4850 Westmere hardware at 2.0GHz, with 10G NICs. The min latency to get a packet from nginx through the kernel stack and onto the wire is about 4uS for a NIC of that vintage, dropping to 2uS with openonload (sokarflare's kernel bypass).
As ippolitiv suggests, your cache already has room for 1.6M items- that's a huge amount. What kind of hit rate are you seeing for your cache?
One way to manage cache size is to only cache popular items- if you set proxy_cache_min_uses =4 then only objects that are requested four times will be cached, which will increase your hit rates and reduce the space needed for the cache.
Peter
Sent from my iPhone
> On Jan 16, 2017, at 4:41 AM, Igor A. Ippolitov <iippolitov at nginx.com> wrote:
>
> Hello,
>
> Your cache have 200m space for keys. This is around 1.6M items, isn't it?
> How much files do you have in your cache? May we have a look at
> `df -i ` and `du -s /cache/123` output, please?
>
>> On 06.01.2017 08:40, omkar_jadhav_20 wrote:
>> Hi,
>>
>> I am using nginx as webserver with nginx version: nginx/1.10.2. For faster
>> access we have mounted cache of nginx of different application on RAM.But
>> even after giving enough buffer of size , now and then cache is getting
>> filled , below are few details of files for your reference :
>> maximum size given in nginx conf file is 500G , while mouting we have given
>> 600G of space i.e. 100G of buffer.But still it is getting filled 100%.
>>
>> fstab entries :
>> tmpfs /cache/123 tmpfs defaults,size=600G
>> 0 0
>> tmpfs /cache/456 tmpfs defaults,size=60G
>> 0 0
>> tmpfs /cache/789 tmpfs defaults,size=110G
>> 0 0
>>
>> cache getting filled , df output:
>>
>> tmpfs tmpfs 60G 17G 44G 28%
>> /cache/456
>> tmpfs tmpfs 110G 323M 110G 1%
>> /cache/789
>> tmpfs tmpfs 600G 600G 0 100%
>> /cache/123
>>
>> nginx conf details :
>>
>> proxy_cache_path /cache/123 keys_zone=a123:200m levels=1:2 max_size=500g
>> inactive=3d;
>>
>> server{
>> listen 80;
>> server_name dvr.catchup.com;
>> location ~.*.m3u8 {
>> access_log /var/log/nginx/access_123.log access;
>> proxy_cache off;
>> root /xyz/123;
>> if (!-e $request_filename) {
>> #origin url will be used if content is not available on DS
>> proxy_pass http://10.10.10.1X;
>> }
>> }
>> location / {
>> access_log /var/log/nginx/access_123.log access;
>> proxy_cache_valid 3d;
>> proxy_cache a123;
>> root /xyz/123;
>> if (!-e $request_filename) {
>> #origin url will be used if content is not available on server
>> proxy_pass http://10.10.10.1X;
>> }
>> proxy_cache_key $proxy_host$uri;
>> }
>> }
>>
>> Posted at Nginx Forum: https://forum.nginx.org/read.php?2,271842,271842#msg-271842
>>
>> _______________________________________________
>> nginx mailing list
>> nginx at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
More information about the nginx
mailing list