记录使用ecshop宕机并恢复的整个过程,看看ecshop这个垃圾的缺陷

本文记录了一次由于ecshop系统缺陷导致的宕机事件,详细描述了从发现问题到逐步解决的过程,包括网站访问缓慢、服务器过载、php线程数激增、memcache连接过多等问题。通过调整memcache连接数、优化慢查询、更改表存储引擎、处理shop_config.php的读删操作等措施,最终恢复了系统稳定。总结出在活动前进行压力测试、合理设置超时时间及优化系统关键点的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景介绍:

2017年9月,公司安排我们研发部搞一个中秋礼品抢购的功能,参与抢购的同事六七千名,我通知其他同事要搞下压力测试,然而功能急急忙忙上线,埋下了宕机的隐患,这是一次血的教训,当然也是一次宝贵的经验。


整个过程:

早上7点,起床打开手机,企业微信就有同事发来消息说网站访问缓慢,我并未在意,觉得是同事的网络有问题;

早上8点多在公交上,突然发现群里反馈信息的人越来越多,我赶紧打开手机,网站已经没了响应,直接报错,我打开电脑,连上手机4g,发现已经连不上阿里云服务器,服务器已经宕机或者过载状态中。(抢购活动9点才开始,同事在上班路上纷纷打开手机访问抢购页面,服务器被挤爆宕机,fpm-php线程数设置的是动态加载,已连接的线程未释放,cpu负载过高,总结应该是这个问题)

早上9点多到了公司后,抢购时间已经开始了,页面又打不开,集体领导各种电话打到办公室催促,运维同事重启了阿里云,然而重启过后一会,网站又立刻变卡,php线程数又暴增,运维只能不停的重启fpm-php与mysql

早上9点半多重启fpm-php一会,页面就会报memcache连接数过多的问题,赶紧让运维将memcache连接数设置到2000(实际上来说是有慢查询,memcache连接不能及时释放),然后设置到2000后,memcahche的问题没有再报,但访问还是异常卡

早上快10点时,通过mysql慢日志与php慢日志发现抢购页面入口那里有异常耗时的查询,紧急将相关功能临时注释(实际上是前几天上线的功能,开发人员未进行缓存处理),同时相关表由myisam 改为innodb (ecshop表都是myisam引擎,update操作锁表,访问量多起来响应耗时,mysql与php连接会不能及时响应,越来越多拖垮服务器),处理完后,页面访问速度已经明显好转,但仍然不是很流畅

早上10点多时,陆续有人发来shop_config.php的报错,紧急查看代码后发现,代码中对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值