故障处理 | 网站500,无法打开站点(突然无法打开,代码和服务器没做调整)

本文详细记录了一次因Redis内存不足导致网站状态码出现500的故障处理过程。通过对错误日志的分析,定位问题根源为Redis内存超出限制,并提供了通过调整Redis配置参数以增大最大内存和修改存储策略的解决方案。
故障详情

晚上3点接到监控报警,网站状态码出现500无法正常访问。

处理详情
故障分析

出现500故障,当时首先想到的可能是php出问题了,马上登录到服务器上面,检查php错误日志。发现php一直重复报这个错误:

PHP Fatal error:  Uncaught exception 'RedisException' with message 'OOM command not allowed when used memory > 'maxmemory'.'

看到这个报错,基本上可以定位是redis内存不够,无法继续存储key的原因。执行命令查看redis配置相关信息:

redis-cli -p 6379 info memory
# Memory
used_memory:134315344                
used_memory_human:128.09M        #表示已用内存
used_memory_rss:148828160           #表示系统给redis分配的内存(即常驻内存)
used_memory_rss_human:141.93M
used_memory_peak:1030100224
used_memory_peak_human:982.38M
total_system_memory:8202334208
total_system_memory_human:7.64G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:1000000000                  #设置最大内存值
maxmemory_human:1.86G
maxmemory_policy:volatile-lru           #redis存储策略
mem_fragmentation_ratio:1.11
mem_allocator:jemalloc-4.0.3
解决方法

修改redis配置,增大redis最大内存,修改redis 存储策略

maxmemory:2000000000  
maxmemory_policy:allkeys-lru
知识拓展
### 浏览器访问网页时出现的代理服务器故障或URL地址错误排查 #### 排查代理服务器问题 当遇到代理服务器问题时,这可能是因为代理服务器配置不当或是代理服务器本身出现了故障。对于这类问题,可以通过调整浏览器设置来尝试解决问题。 - **检查网络连接**:确认计算机已正确连接至互联网,并能够正常上网[^1]。 - **禁用代理服务器**:进入浏览器设置,找到网络设置部分,关闭任何手动设定的代理服务器选项。如果不确定当前使用的代理是否有效,则暂时将其关闭是一个明智的选择。 - **验证代理服务器状态**:联系网络管理员或服务提供商了解代理服务器的状态以及是否存在维护活动影响其功能。 #### 解决因Cookie或缓存引起的HTTP 400错误 某些情况下,损坏的浏览器Cookies或过期的页面缓存可能会引发客户端向服务器发送不良请求,进而收到`400 Bad Request`响应码。针对这种情况: - 清除浏览器的历史记录、Cookies缓存数据可以帮助消除此类异常情况的发生[^2]。 ```javascript // JavaScript代码用于清除本地存储(仅作示范) localStorage.clear(); sessionStorage.clear(); ``` #### 处理IE浏览器特定问题 对于Windows操作系统下的Internet Explorer (IE) 用户来说,浏览器本身的缺陷也可能阻碍正常的Web浏览体验。特别是当IE被恶意软件篡改后,更可能导致无法加载指定URL的情况发生。 - 使用专门工具如“黄山IE修复专家”,可以在不影响系统稳定性的前提下快速定位并修正由第三方程序造成的更改[^3]。 - 如果上述方法未能奏效,考虑卸载现有版本后再安装最新版IE浏览器,或者寻求专业技术支持以解决更为复杂的重装难题。 #### DNS解析失败导致的目标站点不可达 最后,在输入了一个看似无误却始终得不到回应的URL之后,还应考虑到可能是由于DNS查询过程中的失误所致——即目标主机名未成功转换成物理可达的IP地址。 - 尝试刷新本机DNS缓存(`ipconfig /flushdns`)或将DNS服务器切换为公共DNS服务商提供的可靠替代方案,比如Google Public DNS (`8.8.8.8`, `8.8.4.4`) 或 Cloudflare DNS (`1.1.1.1`)[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值