客户背景
中塑在线是为国内外塑化行业人士提供资讯服务及信息交流的专业门户网站。网站内容包括塑料原料、助剂、机械、模具、制品整个产业链,橡胶、化工、化纤等相关产业,并延伸到科技、人才、会展类信息。 通过十多年来跟有形市场的无缝结合及对塑化行业的深刻剖析,中塑人创建了一套成熟的行业商机发布平台,拥有合乎塑化行业特点的体系架构,实现 B2B 信息交流、商务洽谈,已成为塑化行业人士网上营销的首选,得到业界的普遍认可。
浙江中塑在线有限公司,成立于 1994 年。由原余姚市中国塑料城信息中心沿革而成。是中国起步最早、平台规模最大、客户群最广的行业电子商务 B2B 平台之一。 目前中塑在线拥有超过 38 万家涉塑注册企业和月均超过 400 万用户访问量,深度影响中国涉塑企业的经营决策。公司创办的“中塑在线”是在原有的“中国塑料信息网”基础上升级而成。
项目背景
浙江中塑在线有限公司技术研发中心,技术人员 30 余人,分别位于杭州和宁波余姚两地。在余姚建有自己的互联网数据中心机房,共包括 4 个机柜,其中使用虚拟化技术搭建多个 Servers,总共虚拟出 40 余台服务器。服务器操作系统为 Windows 和 Linux。
中塑在线平台采用了高并发、高性能、高可用性、可伸缩性的架构设计,包含数据访问层:DAL、应用服务层:Web Service 和 Web 应用层及客户端,同时向合作方提供 API 接口。应用服务层开发语言以 .NET 为主,同时在架构中也部分使用 Lua, Java, PHP。负载均衡使用 Nginx 反向代理方式,数据库为 SQL Server 以及 MySQL,并且使用 Memcache, Redis, Varnish 等作为缓存服务器。
面临挑战
中塑在线作为中国塑料行业的门户网站,提供原料供应、行业咨询、行情分析等等业务,业务涵盖塑料行业整个产业链。可谓业务之广,访问量之大。
作为一个商机发布平台,每天承接着各个塑料供应商上万条的信息发布。中塑在线支持供应商通过 API 接口发布信息,所以对于 API 的监控也十分重要。
当某供应商页面出现发布未成功;或者发布成功,在关键结点,如结算、购买,出现性能故障,会直接导致供应商的经济损失。而该部分的风险和责任,由中塑在线承担。所以,应用性能对于中塑在线来说,是至关重要。
在未使用 OneAPM 前,中塑在线面前的挑战,主要有以下 5 点:
传统的 SQL Server 的 SQL 性能监控功能,无法满足需求。SQL Server 性能监控和优化工具,是一个集合,将资源的使用、日志的查看、进程的采集、快照信息等功能,分散于不同的工具中;而且操作流程过于复杂。由于产生的数据,不是图形化的展现方式,阅读起来也非常繁琐。中塑在线需要能够快速知道,到底是哪个 SQL 是热点 SQL,该 SQL 执行的上下文、相关进程,相关性能消耗等等。并且能够将 SQL 和业务对应起来,在业务产生问题的时候,能够迅速找到与该业务相关的 SQL;通过交付开发优化 SQL 性能,就能达到业务的正常流转。
风险时有发生,无法快速找到性能问题,来避免经济的损失。报警机制只针对服务器的资源报警,如 CPU 使用率过高,硬盘可用容量达到预设阈值。但往往此部分的预警,发生在风险发生后;如,某个供应商信息的发布失败,往往并不是服务器 CPU 使用率过高或者内存使用率过高。而且,导致单个资源产生问题,有可能并不是资源本身的问题。
性能调优工作依赖人力,无法找到一个智能的工具来协助技术人员,开展性能优化工作。性能问题往往不是表面看到的那么简单,很多因素交织在一起。当性能需求不能满足当前业务时,原有的性能监控工具,只能够记录当前性能指标数据,识别、定位性能瓶颈,以及性能调优工作都需要依赖经验丰富的技术人员。最终产生的效果,也是见仁见智。
每天都有不同的实验性产品测试工作、新产品上线工作、成熟产品的运维工作,没有一个有效的工具来减轻工作量。中塑在线的工作量非常繁重,技术人员 10 余人,很多事情希望交给工具来做。如实验性产品的测试工作;新产品上线时,性能监控工作;成熟产品的日常运维工作。
现有的性能监控工具界面丑陋,导致很多问题都掩盖在杂乱的信息中。各个工具之间的协调性也不够好,促使工作效率降低。企业级的性能监控工具,和一些国外英文版的性能监控工具,阅读起来都存在一点障碍。不单单是因为语言问题,在产品设计上、信息架构上,都存在很多的问题。使得中塑在线的技术人员在使用时,遇到了或多或少的困难。中塑在线也通过一些开源的工具,搭建了一套自己的性能管理和监控系统,但是各个工具之间很难协作。
OneAPM 作为一款应用性能管理云解决方案,能够切实满足中塑在线的需求,能够实际解决中塑在线面临的问题。OneAPM 提供性能数据的可视化、SQL 语句分析机制、事务性能管理等功能,能够实现应用的测试、运维和监控。
解决方案
OneAPM 原有的功能:SQL 语句分析、事务性能管理能够很好地满足中塑在线的需求。OneAPM 的平台适应性,.NET 的兼容、主流框架的支持,在实际部署过程中,没有遇到任何障碍。3 分钟自动完成部署,使得中塑在线前期部署工作变得异常简单。
除此之外,中塑在线的需求也激发了 OneAPM 团队新的创新。中塑在线希望部分功能模块可以拆解,形成一个更轻量化的工具;报警的需求加快了 OneAPM 开发速度;前端 JS 性能抓取时,优化了 OneAPM 真实用户体验管理功能的配置过程。随后,OneAPM 也会推出角色权限管理功能,来满足中塑在线多用户协作的需求。
总之,与中塑在线的合作,不仅帮助了中塑在线,也促使 OneAPM 向着更好的方向成长。
SQL 语句分析
慢 SQL 的智能抓取
慢 SQL 详细信息
事务监控 - 单个事务详细信息
OneAPM,你们是我见过国内唯一一家,以事务为单元,监控应用程序性能的厂家。将应用性能和业务直接挂钩,这样性能的优化就可以代表,优化工作能够带来实际的收益。向上层反映情况时,我们也有底气。
陈军恩,中塑在线技术总监
我们将 OneAPM 使用于实验性产品、新上线的产品和成熟产品中。
实验性产品,我们通过 OneAPM 来测试产品性能,找寻需要进行性能优化的代码。
新上线的产品,我们通过 OneAPM 来监控产品性能,确保产品一直处于一个良好运行的状态。
成熟的产品,除开普通的监控工作,我们还希望 OneAPM 的报警机制能够帮助我们,识别错误、宕机等突发情况的发生。
陈军恩,中塑在线技术总监
实验性产品 - 测试
新上线产品 - 监控
成熟产品 - 报警
客户反馈
OneAPM 刚推来的时候,企业版可以免费使用 60 天,促使中塑在线的技术人员对 OneAPM 产生了兴趣。在使用面向中小型开发者的 OneAPM Beta 版本中,中塑在线的技术人员发现:原来 OneAPM 也支持 .NET 等传统企业的架构,也适用于大型电子商务类的 Web 应用。
OneAPM for .NET 安装简单,下载 Agent 到输入 License Key,直至安装成功;整个过程不超过 3 分钟,无需专业背景知识,也可以完成安装和部署。
但是最重要的 3 点还是:
OneAPM 可以针对 SQL 语句进行分析。OneAPM可以智能识别出 SQL 性能消耗热点,即慢 SQL。通过图形化的展现形式,追溯历史,查看未来。从响应时间、吞吐量、请求次数等多纬度性能指标,来查看 SQL 语句性能。点击每条慢 SQL Traces 记录,还可以查看到 SQL 语句本身、执行计划、堆栈信息等,功能十分强大。
OneAPM 绝佳的事务分析功能,将页面请求和业务相挂钩。传统的性能监控工具并不会像 OneAPM 一样智能,OneAPM 的自动识别功能,能将复杂的逻辑转换为事务性能,将性能和收益结合在一起。通过关注事务性能,来达到业务的成功,获取实际的收益。而事务分析功能,是 OneAPM 最强大的功能。首先,OneAPM 能够智能识别出事务性能消耗 Top5;其次,根据参数配置,在性能达到临界值时,自动为热点事务建立事务 Traces 记录,来抓取细节和底层信息。
丰富的图形化展现,让工作变得简单高效。曲线图、甘特图、Apdex、智能排序、柱状图、联动查询、追溯流程等等,这些友好的 UI 设计,让 OneAPM 更加易用、友好、智能。学习成本低,在无使用经验的情况下,快速上手。
除开这些,中塑在线的技术人员还表示,OneAPM 的功能太多了,还在慢慢探索。如:关键事务、线程 Profiler、浏览器性能、报警机制等。
OneAPM 在 .NET 语言上,支持所有 .NET 语系: VB.NET、C# 和 C++/CLI for .NET 2.0 及以上版本。OneAPM 支持主要框架有:MVC 2、MVC3、MVC4、ASPs 和 WebServices。
OneAPM 可以监测私有数据中心中的应用,和部署于公共云上的应用,包括:Microsoft Azure 和 Azure Cloud Services。
OneAPM 有两个功能,真的很有用。首先是 SQL 分析,能够智能识别出性能消耗大的 SQL 语句,包括响应时间和调用次数,。
事务的性能也是我们关心的,事务功能能够帮助我们及时发现访问频繁的业务。如果该业务在性能上出现了问题,可以召集开发着手解决,事务的 Traces 记录和相关 SQL 功能,也能够指导开发工作。
陈军恩,中塑在线技术总监
About OneAPM
OneAPM 是应用性能管理云解决方案提供商,隶属于北京蓝海讯通科技有限公司。具有真实用户体验监控、分布式事务追踪、代码级性能可见性 3 大功能。帮助企业及开发者提升用户转化、防止用户流失、突破运维瓶颈、优化应用性能。无论是 Web 网站还是手机 App,都可以实现从前端到网络,直至应用代码的端到端性能管理。
OneAPM 能帮助看到真实用户体验数据、定位代码问题、减轻工作量。能够对交互的全过程进行快照和存档,将每一次的交互细节都直接展现,帮助开发运维人员快速找到性能问题的核心所在。线程 Profiler、慢 SQL 语句、Traces 记录功能等等,能够实现对应用程序代码性能的可见性。
OneAPM 完全免费,且无需代码改动;完成部署,只需要 3 分钟;且无缝支持 Java, .NET, Python, Node.js, Ruby, PHP 和 iOS, Android。
了解更多 OneAPM 应用性能管理云解决方案,请访问
染头发
聚一聚……
染头发
教育局……
你好
嗯讲得一般……
星雾
Lambda表达式的条件限制很多,应用面不多,我不知道是否应该要花时间来掌握这个表达式,求解……
修道小仙
感谢分享,来龙去脉,深入浅出,非常清晰……
小布丁
写的棒棒哒……
小布丁
写的真可以……
wuxin
受教了……
爱码物联
博客使用……
yancy_01
很喜欢文字的描述,特别是理论性质的,相比于代码,理论知识更加有意思,谢谢分享……