很多网站开发程序员都都有这样的体会Web应用程序总是不可避免的会发生问题。但任何地方都可能出问题,有时候你只需要知道去哪找就可以了。云智互联网站建设公司总结出十种开发与建设中容易出现问题的地方。
问题1:糟糕的代码
糟糕的代码会使网站开发应用程序出现诸如算法低效、内存溢出、以及死锁等问题。软件版本过旧,或是集成了历史遗留的系统同样会拖累性能。确保你的团队成员都在使用适合其岗位的工具–从自动化分析到更佳编程实践的代码审查工具。
问题2:未经优化的数据库
优化好的数据库可以达到很好的安全级别和处理性能,反之,没有优化的数据库可能会拖垮生产环境下的应用程序。索引的缺失会减慢SQL的查询性能,从而使整个网站变慢。一定要用脚本和文件分析检查任何低效的查询。
问题3:失控的数据增长
数据系统一般会随时间的推移变慢。制定一项计划来管理和监控数据,因为维持数据的增长对高性能的Web应用不可或缺。首先,找出业务中导致数据增长的主因。然后,研究并制定合适的存储解决方案。留意所有数据库、缓存、以及更复杂存储方案的选项。
问题4:流量峰值
我们通常认为流量的增长是件好事。但是当做完市场推广或是经历了疯狂传播的热门视频后,应用程序如果没有做好相应的准备,任何人都知道流量峰值会造成什么结果。提前准备是关键,同时搭建一个通过模拟用户做监测的预警系统例如NeoSense。这样一来,你就会提前发现流量增长影响到了业务,从而避免了用户的糟糕体验。
问题5:糟糕的负载分发
糟糕的分发机制会将新的请求分配到已经当机的服务器,而不是备用待机服务器上,导致服务器响应速度急剧变慢。如果过多的人同时访问同一个服务器,即使这个系统性能远低于瓶颈,还是会造成这样的问题。利用类似NeoLoad的工具测试产品势在必行,它有助于你发现任何薄弱的环节。
问题6:默认设置
系统必须适当调整。默认设置会让一个新的组件很容易启动并运行,但对真正生产环境中的Web应用程序来说未必适合。检查每一项设定:线程数、内存和权限分配。确保所有的配置参数匹配Web应用程序的要求,而不是仅仅为了方便。
问题7:DNS,防火墙,网络连接
DNS查询占用了大部分的网站流量。这也是为什么DNS出了问题会引起很多麻烦,阻止访问者正常访问,抛出错误页面、404、以及错误路径。同样的,网络连接和防火墙的效率也是网站访问能力和性能的关键。使用DNS监控保障措施,以便找出手头的问题。此外还可以修改交换机、检查VLAN标记、以及为不同服务器分配任务。上述也只是解决这类性能的一小部分方法。
问题8:第三方服务出了问题
如果你的系统依赖了第三方服务,那么有些变慢的问题是你无法掌控的。谁没有经历过由于第三方广告服务缓慢导致页面加载的阻塞呢。如果你的用户碰到了这类问题,必须确定问题是出在你的网站还是第三方。如果一定要用第三方服务,调整网站时尽量减少因第三方服务出问题带来的不利影响。最后,确保线下服务提供商为公司提供明确的性能保障。
问题9:共享资源和虚拟机
现如今几乎所有的Web应用程序,从扩展到管理再到系统恢复,都依赖于虚拟服务器。可有时候上百个虚拟系统跑在了一个物理的服务器上,结果就会变成一个虚拟机挂掉会影响到所有其它的。毕竟,资源抢夺总是存在的。密切监控系统,当其中一个虚拟机出了问题,你可以很快处理其产生的副作用。
问题10:多米诺骨牌效应
最后,一定要意识到某一个错误有可能会影响到其它很多你想不到的方方面面。多个问题会纠缠在一起,让人很难确定到底发生了什么。你需要训练团队发现问题根源,通过回溯找到真正的罪魁祸首。你甚至可以考虑Netflix公司的ChaosMonkey模拟策略,通过引入网络异常来探测系统弹性和恢复的能力。
积极主动地解决性能问题
目前你对常见的性能问题有了一个大致印象,事先做更别的用户负载测试是非常必要的。一旦用户开始使用你的网站,就可以利用产品环境中测试(TiP)流程。最后,使用模拟用户脚本来模拟用户导航和购买业务,从而获得反映网站短板的更准确数据。从而更好的提高网站开发、网站建设的质量。