1、前些日子某服务被刷,每分钟达到上几百万请求;当时采用了nginx cache来解决的;但是因为某服务不能缓存太久,当时设置了5s,那么带来的问题就是产生大量小文件,而且很快就删除了。
2、通过free -m
会发现used是27G;但是通过top查看进程占的内存并没有那么多
那内存去哪了?
3、通过查阅资料会发现(cat /proc/meminfo)
Slab: 22464312 kB
SReclaimable: 16474128 kB (这些是内核保持的但是可以释放的inode和dentry的缓存)
SUnreclaim: 5990184 kB
4、这些内存为什么会不自动清理呢?
某机房机器系统版本:Linux 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux(正常,没出现内存快到100%的情况)
某机房机器系统版本:Linux 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux (不释放)
5、通过设置如下参数来设置内存阀值
sysctl -w vm.extra_free_kbytes=6436787
sysctl -w vm.vfs_cache_pressure=10000
参考资料
相关推荐
proxy_cache机制允许Nginx将从后端服务器获得的静态内容缓存到磁盘上,当相同请求再次发生时,可以直接从磁盘缓存中提供数据,而无需每次都向后端服务器获取。 proxy_cache的基本用法是在Nginx的配置文件中进行设置...
- **性能监控**:部署Prometheus、Grafana等工具,实时监控Nginx运行状态,及时发现并解决问题。 以上就是针对"Nginx生产环境优化"的一些关键点,具体实施时需要结合实际服务器配置和应用需求进行微调。在10万并发...
编译Nginx时,可以通过指定GCC编译器的参数来优化编译过程,如开启更多的优化选项。 **3.2 修改Nginx的header伪装服务器** 为了避免安全风险,可以修改Nginx返回的server header,隐藏服务器的真实身份。 **3.3 ...
这里的`/path/to/cache`是缓存目录,`my_cache`是缓存区域名称,`10m`是内存缓存大小,`inactive=60m`表示缓存文件在60分钟内无访问后自动清理。 如果页面不刷新,很可能是以下原因: 1. **缓存时间过长**:检查`...
例如,使用`proxy_cache_path`定义缓存目录,`proxy_cache`启用缓存,`proxy_cache_key`指定缓存键。 5. **负载均衡策略**:根据业务需求选择合适的负载均衡算法,如轮询、权重、IP哈希等,确保请求均匀分布。 6. ...
- 模块配置需谨慎,错误的配置可能会导致Nginx无法启动或处理图像请求失败。 - 图像处理会增加服务器CPU和内存的使用,因此需评估服务器性能,避免影响其他服务。 - 频繁的图像处理可能使服务器负载增大,考虑...
4. **缓存策略**:Nginx可以对静态资源进行缓存,通过`proxy_cache_path`设置缓存路径,`proxy_cache`启用缓存,`proxy_cache_key`定义缓存键。 5. **负载均衡**:使用`upstream`模块可以实现负载均衡,如轮询、...
**Nginx调优概述** Nginx是一款高性能的HTTP和反向代理服务器,以其轻量级、稳定性和高并发处理能力而广受赞誉。在实际应用中,为了确保Nginx能高效运行并满足业务需求,进行调优是必不可少的步骤。本资料将详细...
1. **`net.ipv4.tcp_max_tw_buckets`**:设置处于time-wait状态的TCP连接数量上限,过高可能会导致内存不足。默认值为180000,可以根据实际情况适当调整。 2. **`net.ipv4.ip_local_port_range`**:设置本地端口...
2. **内存不足**:如果Nginx进程占用过多内存,系统可能会杀死进程,导致503错误。监控服务器资源使用情况,并根据需要调整配置。 3. **文件权限**:确保Nginx有读取和执行所有相关文件(如配置文件、静态文件、...
- **停止**:使用`nginx -s stop`命令立即停止服务,或使用`nginx -s quit`命令等待所有连接完成后停止服务。 - **平滑重启**:使用`nginx -s reload`命令可以平滑地重新加载配置文件,不会中断当前的连接。 - **...
- **开启缓存加速**:利用Nginx内置的fastcgi_cache模块实现动态内容缓存,提高响应速度。 - **负载均衡设置**:通过upstream指令定义后端服务集群,并采用轮询、最少连接数等方式分发请求。 - **安全策略配置**:...
### Nginx应用优化 #### 知识点一:Nginx优化背景及意义 Nginx是一款广泛使用的高性能Web服务器和反向代理服务器,在处理高并发连接方面表现优秀。然而,为了充分发挥其性能潜力,对Nginx进行合理配置与优化至关...
关于日志的切割,随着Web服务的持续运行,日志文件会变得越来越大,为避免单个日志文件过大导致的问题,如磁盘空间的浪费和日志分析的不便,我们需要对日志文件进行定期的切割。日志切割一般是指将当前正在写的日志...
Nginx是一种高性能的HTTP和反向代理...通过配置proxy_cache_path和proxy_cache就可以开启内容缓存,使得Nginx在处理请求时,能够快速地从缓存中获取数据,而不是每次都去动态生成数据,从而提高网站的性能和用户体验。
- **减少工作进程**:根据服务器硬件配置,调整`worker_processes`数量,确保每个工作进程能够充分利用CPU核心,但避免过多导致内存浪费。 - **开启多线程**:尽管Nginx是单线程模型,但可以通过开启`thread_pool`...
对于高并发的服务来说,这个限制可能会导致无法打开足够的文件句柄。可以通过编辑`/etc/security/limits.conf`文件来增加限制,例如设置为655350,即: ```conf * soft nofile 655350 * hard nofile 655350 ``` ...
它有一系列参数来定义缓存的行为,例如缓存的最大数量(max)、描述符在多长时间后如果没有访问则关闭(inactive)、描述符在缓存中保持打开状态所需的最少使用次数(min_uses)以及检查文件是否仍然存在的间隔时间(valid)...