作者介绍:余劲, Crazysales 公司 IT 负责人,拥有 18 年以上的代码编写经验, 15 年 Java/PHP 应用经验, 13 年的电子商务行业经验, 8 年软件架构设计经验和丰富的项目开发管理经验,对软件工程有深入研究,曾帮助一外资企业成功通过 CMM L4 和 CMMI L5 评估,善于 WEB 应用软件分析、开发,成功带领团队开发和维护多个大型跨国交易网站。
Crazysales 是一家典型的跨境电商企业, 不仅是 eBay 等大型电商平台上的大卖家,同时拥有多个自营电商平台,在中国也有多个品牌在运营,为广大用户提供完整的网购服务。
欢迎大家投稿:
[email protected]
联系 QQ : 614117760
跨境电商经历 2014~2015 年的爆发式增长已经进入成熟发展阶段,据统计, 2015 年年底我国海淘市场规模达到 2400 亿元,同比增长 60%,海淘人数达到 2400 万人,预计在 2018 年,市场规模将达万亿级别。早期政策和人口红利带来的诸多利好因素逐渐成为过去,随着各大综合型电商纷纷布局海淘市场,以及大量个性化、差异化海淘网站的上线,如今的跨境电商已经成为竞争激烈的红海市场,电商企业要在激烈的竞争中确保业务稳定增长,必须对作为业务支撑的网站和 APP 性能进行准确的监控,选择合适的关键业务监控指标尤为重要。
跨境电商企业从资本积累到高速发展,再到业务扩张,网站(系统)对于 IT 技术架构的要求会根据业务变化不停地变化。在整个过程中,监控的内容和指标类型是基本不变的,变的只是数字。众所周知,对外网站的访问量是衡量网站的重要指标之一,它在系统后面的反映就是压力,是处理各个级别访问量的能力。一般细分出来有: 1. 磁盘 I/O ; 2. 内存使用量; 3. 内外网络的带宽; 4. CPU 使用率; 5. 数据库的 Select QPS 等。
根据我们的经验,当系统架构由三台或以上的独立服务器协助完成的时候,需要在内部对每台服务器以上几个指标进行监控,这样才能让我们及时发现瓶颈,优化性能时才会更有重点和高效。如何使用这些监控指标呢?
结合我们跨境电商企业的网站特点,网站一开始对数据库的依赖大的特征做一个简单分析:数据库(MySQL) 在从一个库到多个库的发展过程中,时常会变成整个系统最大的瓶颈,每当网站访问量提高 10%, MySQL 的 CPU 使用波动和输出网络带宽就会出现很大的增长,如果后台系统同时对数据库进行读写操作时,更容易导致前台网页出现 500 错误。在架构壮大之前,导致的原因往往是 MySQL 出现大量(查询时间长)的 Select 操作后,引起数据库进行表级别的 Lock(MyISAM 引擎的特征)所导致的。
这又引出一个疑问了,在这么多的系统和代码中,怎么样发现这类问题,并进行优化呢?通过对监控数据长时间的观察, CPU 的波动一般都是正常的,它成为瓶颈的机率很少,除非程序出现死循环。现代的磁盘性能已经很高了, I/O 性能在使用 HA 架构后,会根据 I/O 指标来决定增加磁盘(无缝完成),所以 I/O 也不会是瓶颈。如果项目管理到位,内存使用是严格控制的,需要大量内存消耗的功能,必须要向架构师申请,不允许私自写大数据到内存。最后,内外网络的带宽的变化是最大的,最容易反应各个系统运行情况的一个指标,当有一定历史监控数据之后,更容易发现整个系统架构的性能瓶颈。
例如某次,通过云智慧监控宝发现网页的响应时间比平常多出 5 倍,工程师迅速对数据库和各个独立系统的监控数据进行分析,发现如下情况:
图一
图二
经过两张图的对比,发现一台服务器的进来的网络流量(图一, Incoming network traffic)变化正是另外一台服务器出去的网络流量(图二, Outgoing network traffic)变化一致,范围缩小,我们的内部监控是针对每个功能节点的,而刚好这个 Outgoing network traffic 正是数据库出去的流量,可以肯定另外一台服务器(图一)提取了不应该的数据了(在访问量不变的情况下,对比了历史监控数据,没有发现以前有这么多数据流动)。范围进一步缩小,很快定位问题在这个功能点,接下来就是针对性地进行程序或系统的优化了。这是监控宝通过监控响应时间的变化,从而发现问题的实例。
监控宝对跨境电商还有另外一个重要作用,就是准确感知海外服务器的网络状况,通过监控宝部署在不同国家的监控点对网站运行状态进行观察,很容易区分是外部网络故障还是内部系统故障。
图三
如上图,我们的网站服务器是星状部署模型, 有一个中心数据(系统)源,而监控宝在各国国家都有落地的监控点,所以我们利用这个特性,在监控宝创建了一个直接指向我们中央服务器的监控项目,让它收集从不同的地方的到我们中央服务器的监控数据,汇总到如下图:
图四
这里每一条线代表中央服务器对不同国家的响应时间,蓝色箭头这里(5 月 15 日),加拿大响应时间超过 2000ms ,而其它国家回来的数据是正常(1000ms 左右)。这说明加拿大到我们的中央服务器链路有问题。红色箭头( 7 月 3 日) 情况看到是所有国家的响应时间都很高(接近 3000ms ),说明我们的数据源服务器内部出现问题了,我们的工程师翻查内部系统日志,也印证了这一个结论。
以上是根据我们的架构特性积累的经验,并不一定适合每家跨境电商,正如本文开头提到的,每家公司的发展阶段不同,可投入的 IT 资源不同,遇到的问题和解决方案当然也有差异。这就要求 IT 部门熟悉掌握技术架构的同时,对企业的具体业务模式有深入的了解,通过细致的数据观察和分析,才能找到业务增长的主要监控指标和辅助指标,让网站技术和公司业务一起稳步增长。