哎呀,怎么反应这么慢啊?!这是我们在使用Web系统时经常会冒出的一句话。
要破解Web系统慢的病灶,最佳方法还是联系系统开发商,毕竟专业的事应该交给专业的人去解决。
但很多经验不足或者不负责任的系统开发商喜欢把责任甩锅于“网络不稳定”、“服务器被攻击”等因素。
今天海旗派就来总结下Web系统打开慢的可能原因。
在紧急情况下,系统使用者也可以按照本文提示的思路方法进行自查;此外系统使用者也可以据此来判断系统开发商是否不负责任或在甩锅。

原因1:使用者网速及网络稳定性问题

这是最主要也是最直接的因素。某些网络服务商的网络稳定性有着非常明显的时间特性。比如晚间使用高峰时段,网速会明显下降。这样访问Web系统时自然速度就会变慢。
解决方案:试一下访问其他Web系统或网页的速度如何,如果都很慢,打电话给你的宽带服务商让他们排查下吧。

原因2:Web服务器网速(带宽)及网络稳定性问题

Web服务器也就是存放Web系统存储的地方。
Web服务器的带宽是需要向机房IDC购买的,简单来说,带宽越高,访问速度越快。
如果Web系统长期反应速度都很慢的话,很有可能是服务器带宽不够大。
解决方案:视甲方的预算程度,升级更高的服务器带宽。

原因3:Web系统或Web服务器被攻击

如果你是搜狐、新浪、腾讯等大厂的Web系统,又或者你是行业龙头企业(容易遭同行嫉妒)的话,Web系统或Web服务器被攻击的可能性还是很高的。
否则,没有哪个黑客闲的没事儿干去攻击你的Web系统。因为你要知道,黑客攻击一个Web系统或Web服务器也是需要耗费大量人力物力(这些都是钱)的。
解决方案:查看Web服务器及系统日志,查看是否有异常的访问记录。

原因4:同Web服务器其它Web系统干扰

很多Web服务器都是一台服务器上挂在几个、几十个甚至几百个Web系统。如果其中某个系统被攻击,导致服务器大量资源被占用,则其它Web系统的相应速度则有可能会变慢。
解决方案:登陆进入远程服务器,查看服务器进程、CPU及带宽占用情况、网络访问日志等。对稳定性要求比较高的系统而言,建议使用独立服务器和独立带宽。当然,甲方的预算要到位,毕竟一套二居室整租与合租的租金差距还是很大的。

原因5:DNS解析速度问题

域名(比如:www.hixip.com)是给人看的的,IP地址(比如:122.115.177.188)是给机器看的。
DNS解析就是从域名(比如:www.hixip.com)翻译成IP地址(比如:122.115.177.188)的过程。这是任何一个Web系统打开时都必经的过程。
很多人轻视DNS解析的因素,其实它对Web系统的打开速度也是十分重要的。
解决方案:查看DNS解析是否正常,如果甲方绝对Web系统打开速度有极致要求且预算资金充裕,更换付费DNS。

原因6:服务器硬件配置

对于某些计算量较大的页面和功能而言,服务器的硬件配置对系统反应速度的影响是非常大的。一个最简单的试金石就是“搜索功能”。
当系统运行某些复杂的搜索算法的时候,需要消耗大量的CPU资源。这时,两台分别搭载英特尔i9八核处理器和英特尔i3单核处理器的服务器的反应速度就会有这天壤之别。
所以如果Web系统某些功能运行很流畅,而“搜索”等高负载功能反应速度慢的时候,则很有可能是服务器硬件算力不足导致的。
解决方案:登陆进入远程服务器,查看服务器进程、CPU占用情况。甲方预算充足情况下,升级更高配置的服务器。

原因7:服务器防火墙及安全软件配置

服务器上的防火墙和安全软件需要对访问Web系统的所有操作进行安全性校验和过滤,而校验和过滤的过程是需要时间的。
对于大多数Web系统而言,校验和过滤过程所耗费的时间与Web系统安全性提升之间的性价比还是蛮高的。
但对于某些特殊的Web系统而言,防火墙和安全软件的的校验和过滤过程则会非常慢。相信我,海旗派近期承接的一个项目就遇到了这样的情况,服务器开了某安全软件,系统慢的像牛,关掉安全软件,系统快的像马。
解决方案:关掉服务器防火墙及安全软件,通过其它方案加固服务器系统安全性。

原因8:Web系统页面内容

举个简单的例子,Web系统里面的图片(供下载的高清图片资源除外)应该是压缩和处理过的,一般一张图片的大小也就是几十KB,最多也就一二百KB。
图片的处理可以是手工完成也可以是系统完成的。然而在某些情况下,web系统使用者会错误的上传超大的图片。比如之前海旗派就遇到过用户在一篇文章中上传10张30多MB的图片的情况。
试想一下,一个web页面中要打开10x30MB=300MB的图片,反应速度很定会很慢。
解决方案:排查上传资源是否过大,系统增设图片压缩处理功能。

原因9:Web系统中的第三方插件或资源引用

任何一个现代的Web系统中都会使用大量第三方插件、引用大量的第三方资源。比如:bootstrap、jquery、vue.js等等。
很多没有经验的系统开发商在引用这些第三方插件的时候,喜欢直接使用第三方插件提供的CDN地址,这种方法虽然省时省力,且甲方不易发现,但这是很不专业的做法。
海旗派在引用第三方插件的时候,会强制性要求将第三方插件本地化(某些有版权要求不能本地化的插件除外)。也就是说,所有Web系统的页面引用第三方插件的时候,不是通过远程CDN引用,而是本地引用。
这样的好处是:
1. 本地引用,引用速度更快。
2. 某些CDN地址受网络因素影响很大,特别是某些境外CDN地址,在联通网络打开可能没事儿,换乘电信网络可能就不行了。
3. 某些只在内网使用的Web系统无法访问外网,系统仍然能够正常运转。
解决方案:将所有通过远程CDN引用的第三方插件变为本地化引用。

结束语

总的来说,找个靠谱的系统开发商比啥都强,除了第一条外,上面的这些事儿系统开发商都会帮你解决了。