[文章作者:狂奔的鹿(陆松林) 本文版本:v1.0 转载请注明原文链接:http://dynamiclu.iteye.com/]
作WEB产品的技术人员,无论是开发、运维,还是DBA,都会有需要紧急救火的时候,重压之下,会手忙脚乱,也属正常。
(一). 对硬件损坏、网络不正常、电源类物理问题
此类问题的保障还在平时的工作。 如消除单点,作好完全备分。 特殊情况无法彻底消除单点的, 如果主库(用来写的)只有一台机器, 这时一定要做好替换操作步骤文档,备机跟应用最好一模一样。 准备步骤很关键,虽然有很多命令我们平时敲了很多遍,可是在紧急关头,可能也会是一头雾水。按操作步骤操作能节省很多时间。 团队里就有这个一个例子,一个百万级PV、千万级库表的系统,主库因硬盘问题宕机,在没有mysql的DBA的情况下,开发人员自已动手,当时幸好之前准备了步骤,才能在断时间内恢复系统。 另外一个case,团队里新来一开发人员,对系统部置了解不深,问到这样一个问题,假如linux系统重启了,他不知道重启那些服务。 一般的方法都会是去查询文档,从文档里了解。但互联网产品迭代较快,部署设整快,有些文档太多、加上时间长,参考价值不是最佳。 当时我反问那个开发人员,说:“如何没有人能教你了,你会怎么办?”, 他没有回答。 后来我回答道:“为什么不能在系统正常的情况下,ps一把所有的进程,并保存下来”, 这个操作可能10秒就完成了,且得到的是最准确的服务器服务信息。 综上两个case,这类相关问题的处理,还是在平时的工作,平时把所有的可能都想到,并作好相应的准备,问题出现了,处理时也会得心应手。
(二). 对程序BUG、性能瓶颈、遭攻击等软件类
1. 你的程序、你的系统完全监控起来了吗?
大部分系统用nagios作监控时,都只会监控到cpu、内存、磁盘、端口、是否宕机; 如java的线程数、jvm内存使用、apache进程数、80端口的TCP连接数、连接池操作数据库的情况、请求的超时监控、重要功能是否完整等监控都会漏了。 传说facebook在上线功能时,一定会有个考查,这个功能或模块是否可监控,如果不能监控,就不能上线。 只有完全监控来起,加上适当的报警,才更有利于我们分析问题的真正原因。
2. 问题分析思路
A. 理清问题的现象
这一步很关键,越是紧急的问题,越不能着急。 要思考,还可以用文笔把其现象记录下来。如,是个别现象,还是普遍现象? 问题发生的时间? 问题发生的场景(是linux,还是window,那种浏览器,版本是什么)? 问题出现的规律?
B. 查询监控系统记录下来的数据
查看数据,主要是核对问题的存在, 当然,如果通过现象,再根据个人的经验就可以99%地判断问题点在哪,就不需操作这步。 如,有人说我们的网站出现了502,当我们到现场的时候,可能自动恢复了, 这样可以通过时间去查apache或nginx的日志,来确认问题的存在。
C. 重现问题的现象
对于A步和B步都还没找到原因时,就得想办法重现问题。 问题要重现,就一定要跟问题的发现者多沟通,且完全沟通, 沟通清楚后对分析问题有事半功倍的作用,远远比登陆到服务器查看各种错误日志强。 问题重现了, 排查就有了方向。
3.case经验
- 如果监控报警做得完善的话,收到报警后,一般就会知道是那个环节出了问题。
- 系统出现BUG或性能问题后,往往一般都考虑考虑最近是否上线了什么功能或调整。
case: 团队里负责的一个产品,一段时间java的线程数间接性的、偶尔性地报警。线程高时,系统会变慢,一会又会自已缓过来。由于没有规率,现象不明显,找了好几天,没找到根本原因在那里,很苦恼,监控下来的数据也不能说明问题具体是在那个位置。 怀疑半个月前上线的VIP吧功能,询问具体开发这个功能的同事,功能正常,也经过测试,找不到疑点。 最后,无奈之下,还是只能怀疑半个月前上线的VIP功能, 指派另外一个工程师读其代码,DBA协助,截取了近三个小时的查询语句, 统计分析了一下,一半左右的数据查询是判断这个吧是否为VIP吧,语句本身查询很快,只是占用了大量的连接资源。 问题的根本原因找到了,VIP功能,memcache的过期时间太短,只设了20分钟,正常逻辑去判断的话,memcache过期设20分钟,可能不是什么太问题,关键是这个功能是访问量最大的帖子读取页,抓取等不规律的访问。优化系统,将memcached换成持久的ttserver。 问题得到了解决,系统再也不报警了。
这个case查询时间较长,表现上看不出问题。只能通过统计数据,看到异常才得到结论。 经验教训:如果线上产品出现了一时很难分析的问题,就回顾一下作了那些改动,最近上线了什么功能,从这个入口去查问题。
- 查询并统计apache或nginx的访问日志,看一下系统究竟在做什么
[文章作者:狂奔的鹿(陆松林) 本文版本:v1.0 转载请注明原文链接:http://dynamiclu.iteye.com/]
分享到:
相关推荐
海康威视作为全球领先的安防解决方案提供商,其产品线涵盖了监控摄像机、视频录像机、视频管理软件等多个领域。在数字化、网络化、智能化的趋势下,海康威视推出了Web3.0开发包,旨在为开发者提供更强大、更便捷的...
本文将深入探讨浪潮服务器产品线中的两个关键型号——NP3020和NP3060,它们是针对中小型企业及特定行业应用设计的服务器产品。 一、NP3020服务器 1. **产品概述**: NP3020是一款专为中小型企业设计的单路入门级...
综上所述,这个压缩包文件提供的内容可能涵盖了互联网安全的多个关键方面,包括资产管理、漏洞运营、Web安全实践,以及相关的安全产品线。深入学习这些内容将有助于提升组织的安全防护能力,有效应对日益复杂的网络...
最后,文中还提到系统实现过程中遇到的技术问题和解决方案,例如在定义节点矢量时可能遇到的0/0情况,通常这类问题会按照数学定义取值为0来处理。 综上所述,本文对在基于Web的CAD系统中实现NURBS曲线的理论依据、...
提供的文档说明是理解WebPlugin使用的关键,它详细介绍了安装、配置、操作的每一个环节,以及可能遇到的问题和解决办法。对于初次使用者,文档中的示例和步骤指导能有效降低学习曲线,提高工作效率。 五、Demo分析 ...
根据给定的文件标题、描述、标签以及部分内容,我们可以提炼出关于WEB测试的重要知识点和注意...在进行WEB测试时,测试人员需要具备全面的技能和细致的态度,确保网站在上线前达到最佳状态,为用户提供优质的在线体验。
1. ArcGIS Server:ArcGIS Server是Esri公司提供的一个强大的地理信息系统(GIS)服务器产品,它能够处理、存储、管理和分发地理空间数据。在Web GIS开发中,ArcGIS Server扮演着核心角色,负责处理地图服务、地理...
5. **程序**:指的是整个企业产品线上推广系统的程序代码,包括前端和后端的实现。 【文件名称列表推断】 虽然具体文件列表未给出,但通常这类项目可能包含以下文件: - index.php(主入口文件) - app.js(微信小...
海康威视是中国知名的安防产品提供商,其产品线广泛,包括摄像头、NVR/DVR、视频分析软件等。这款web插件是其产品生态的一部分,旨在为网页开发者提供一个无缝对接海康设备的工具。 在“海康WEB3.0控件开发包”这个...
本规范面向的读者主要包括Web应用的开发者、测试工程师、安全分析师以及项目管理者,他们需要理解和执行Web应用的安全测试流程,以确保产品的安全性。 【适用范围】 此规范适用于所有基于Web的软件开发项目,无论...
海康威视作为全球领先的安防解决方案提供商,其产品线涵盖了各种监控设备,包括网络硬盘录像机(NVR)和嵌入式网络录像机(DVR)。在数字化和互联网化的趋势下,海康威视推出了“海康WEB3.0控件V1.0.9”,这是一个...
本项目是在中国疾病预防控制中心在北京市昌平新建的试验中心,污水处理主要分为生活污水处理、试验污水处理两部分,控制系统的控制水平和控制产品的质量直接影响污水处理的连续性和周边环境的安全性,所以必须选择好...
海康作为全球知名的安防设备制造商,其产品线涵盖了各种类型的摄像头,广泛应用于监控、安全等领域。Web3.0开发包的出现意味着海康正积极拥抱新技术,将传统的安防监控系统与区块链技术、AI智能等Web3.0特性相结合,...
### 在Web页面上使用VBScript与JScript #### VBScript与JScript的区别及应用场景 **概述:** 本文旨在深入探讨VBScript与JScript这两种脚本语言的区别及其在Web开发中的应用。通过比较这两种语言的特点、适用环境...
### Web_Dynpro_FPM 最佳实践 #### 一、WebDynpro ABAP与Floorplan Manager (FPM) - **FPM概述**:Floorplan Manager(FPM)...随着FPM在SAP产品线中的广泛应用,掌握这一技术将成为企业级应用开发不可或缺的一部分。
大华是知名的安防设备制造商,其产品线包括各种监控摄像头,提供了丰富的视频管理和控制功能。在这个“WEB_DEMO”中,用户可以体验到以下关键知识点: 1. **Web端摄像头集成**:此DEMO演示了如何在网页上直接接入...
海康威视作为全球领先的安防解决方案提供商,其产品线涵盖了监控摄像机、视频录像机、视频管理软件等多个领域。在Web3.0时代,为了提供更先进的网络视频服务,海康威视推出了“web3.0-hikvision.zip”压缩包,其中...
Tiva是TI推出的基于ARM Cortex-M4内核的微控制器产品线,常用于嵌入式系统和物联网(IoT)应用。 【标签】"CCS web"表明这是关于CCS的Web版本,相比传统的桌面版本,Web版本可能提供更便捷的云访问和更新体验,...
在这个开发包中,Web3.0可能被用来实现更高级的视频内容分析,比如通过AI技术自动识别和标记视频中的关键信息。 2. **视频控件开发**:控件是软件开发中的一种组件,用于提供特定功能。此开发包可能包含一组用于...