首页 > 系统相关 >基于tmpfs 的nginx cache 优化

基于tmpfs 的nginx cache 优化

时间:2023-02-23 21:56:05浏览次数:62  
标签:基于 服务 cache nginx 内存 tmpfs

昨天简单说明了下基于tmpfs 的nginx proxy_cache 优化,今天整体说明下

参考图

 

 

流程说明

  • 修改之前的
    对于nginx 使用了多级处理,ingress (也是基于nignx,openresty),对于服务的ib 也是就有nginx (openresty),同时lb 也包含一部分静态资源的能力
    service 包含了不同类型的服务(图片服务,接口服务,单体服务,静态资源服务),原有的cache 是基于本地磁盘的,在大量压测的时候发现了一些问题
    iowait 会有一些高,同时基于bcc-tools 的xfsslow 进行分析,发现有不少慢io 操作,主要是图片缩略图服务(里边会包含cpu 、内存、io 的处理)实际上对于
    缩略图部分已经了一些cache (磁盘),原有部分ingress 入口实际上也基于了proxy_cache 对于上游nginx proxy 的服务进行了cache,发现效果还是不太好
  • 调整
    以前是基于磁盘的cache的,通过统计发现各个服务依赖的资源并不是很多(当前cache 的磁盘文件数据,与实际节点的内存还是差异不少的)而且内存使用
    率并不是很大(占用不到1/10) 而且考虑到实际我们的节点也不少,总体内存是大于当前服务占用的磁盘空间,所以基于简单平均,每个节点会挂载均分大小的
    tmpfs 文件系统,对于图片缩略图为了提供性能,同时也添加了内存文件系统(也是tmpfs)这样整体就包含了ingress, nginx, imageproxy 缩略图多级cache
    可以参考上图

问题

实际上nginx 官方也介绍过,tmpfs 毕竟是单机的,而且受限于内存,同时因为数据不是共享的,会分散在多个nginx 节点中数据会有冗余,造成内存浪费,当时还有
就是tmpfs 的易失性(重启数据会丢失),但是如果进行了多级处理对于性能的提升还是不错的

一些nginx 配置调整参考

参考配置
开启多线程模式+支持woker 进程抢占,woker 进程多connection 创建

 
user root;
worker_processes  auto;
worker_cpu_affinity auto;
error_log logs/error.log error;
events {
    use epoll;
    worker_connections  655360;
    accept_mutex off;
    multi_accept on;
    worker_aio_requests 1024; 
}
http {
    include common/*.conf;
    include app/*.conf;
    aio threads;
    aio_write on;
}
   

参考资料

https://www.cnblogs.com/rongfengliang/p/17146438.html
https://www.kernel.org/doc/html/v5.18/filesystems/tmpfs.html
https://en.wikipedia.org/wiki/Tmpfs
https://www.nginx.com/blog/cache-placement-strategies-nginx-plus/
https://github.com/iovisor/bcc
https://github.com/willnorris/imageproxy

标签:基于,服务,cache,nginx,内存,tmpfs
From: https://www.cnblogs.com/rongfengliang/p/17149592.html

相关文章

  • Nginx地址重写功能
    Nginx地址重写功能Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在......
  • 启动 nginx 成功之后通过 IP 访问失败
    查看防火墙状态。输入命令:systemctlstatusfirewalld.service发现防火墙发开的,我们将防火墙关闭,输入命令:systemctlstopfirewalld.service然后在查看防火墙状态,发现是关......
  • Token cache serialization Azure AD
    ModernauthenticationwithAzureADforWinForms(native)apps(cmatskas.com)Atthispointeverythingshouldresolvefineapartfromthe'TokenCacheHelper'.T......
  • Unbuntu源码下载编译nginx1.22.1
    下载nginx1.22.1源码nginx1.22.1使用ftp工具将下载的.tar.gz压缩包上传到服务器上。tar-zxvfnginx-1.22.1.tar.gz解压得到一个nginx-1.22.1文件夹。编译&安装官方......
  • Nginx之location详解
    Nginx之location详解https://huaweicloud.csdn.net/63a570c2b878a54545947421.html?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Ed......
  • 学习笔记——Nginx在linux中的命令
    2023-02-231、Nginx命令(1)开启Nginx安装Nginx之后,在“/usr/local/nginx/sbin”目录中sudo./nginx(2)关闭Nginx,在“/usr/local/nginx/sbin”目录中sudo./nginx-s......
  • Nginx SSL+tomcat,request.getScheme() 取到的协议不正确
    原文地址:https://blog.csdn.net/caicaimaomao/article/details/126362415现象:使用Nginx代理tomcat,使用https访问,在火狐浏览器下无法访问。没有使用Nginx时,直接通通过tomc......
  • Nginx生成自定义证书
    1、创建存放证书的目录,此目录可自定义cd/usr/local/nginx/conf/cretmkdirkeycdkey先安装依赖包yum-yinstallporc-develzlib-develpopt-developenssl-developen......
  • nginx TCP代理增加日志配置
    在straem增加一下配置stream{log_formatTCP_proxy'$remote_addr-[$time_local]''$protocol$status$bytes_sent$bytes_received''......
  • Nginx rewrite 详解
     本篇主要介绍nginx的rewrite重定向这个功能进行详解介绍,以及介绍它的使用场景1.rewrite基本介绍rewrite是实现URL重写的关键指令,根据regex(正则表达式)部......