系统上线前关于性能优化的12件事

用户总是很关心其使用的软件的响应速度。快!更快!在快一点!客户总是会不遗余力的要求你的系统能给出更好的性能。如果你的系统反应很慢,就算是你应用程序再好,也没有人会愿意使用,没人用就不会带来收入。

一方面开发团队需要尽力编写最高性能的应用。 IT部门则需要尽可能提供最佳选择,以提高应用程序的速度,包括决定是否自建机房部署部署软件或将其托管在云VPS上。在本文章中虫虫给大家说说关于线上应用程序部署时候关于性能优化的一些注意事项。在选择应用程序的部署平台时,你可以通过下面的12个方面来最大限度地提高系统的性能和响应。

1、安装最新的基础软件

不管是自建的数据中心是跑在IaaS云上,尽可能安装最新的稳定的软件版本。安装最新版本的操作系统的,最新的内核,最新的类库。以及最新的应用服务器起,数据库,中间件等。(这就是选择IaaS的原因,可以自主地安装控制更新。)如果你无法自己控制更新,也首要选择最新软件基础的服务器。当然具体时候也要看运维团队的知识和能力情况,选择运维团队最熟悉的最稳定最新版本的版本。

2、选择最新的硬件

比如在讨论x86架构,无论是在自建的数据中心还是在云上,都可以找到最新的英特尔至强处理器。到2018年中期,我希望服务器运行Xeon E5 v3、E7 v4或更高版本。如果没有用到这样配置,那么你就不能充分利用应用程序或利用硬件芯片组。例如,Xeon E7 v4 对CPU周期指令处理有很大的改进,他可以代理巨大的性能优势。同样,如果你选择AMD或其他处理器,条件允许的情况下选择最新的硬件架构。

3、对虚拟化架构,使用最新管理软件。

虚拟机管理程序是虚拟机(VM)性能的关键,但并非所有管理程序都是合宜地。许多顶级管理程序具有多个产品线以及不同性能和安全性影响的设置。事先无法知道哪个虚拟机管理程序最适合你的应用程序。因此,你要做大量的测试和适配工作测试,调优,测试遵循这样的流程,直到找到完美的方案。可能有的时候,你需要使用遵循公司的软件管理流程,它确定了具体的管理程序,那么你要确保使用其最新的版本。

3、Spectre和Meltdown补丁问题

大家都知道Spectre和Meltdown漏洞,官方的补丁大大的影响了服务器的速度,但是性能影响的大小取决于服务器型号,服务器的固件,驱动程序,操作系统和应用程序。大体上评估的话,大概有15%的性能损耗。除了通过实际测试,我们没法知道准确的数字。因此,需要了解你的服务器是否已经打了补丁。如果还没有打补丁,那么安装补丁后,应用程序性能会下降。

4、根据应用程序要求确定CPU和内存

如果你的应用程序及其核心依赖项(例如LAMP栈、.NET基础架构和J2EE架构)对线程有着高度的依赖,那么该软件跑在多核CPU服务器上表现会更好,确保每个CPU都配备了最多的核心数量,比如24核。但是,如果应用系统架构瓶颈不在线程上,那么使用8核服务器加上较高的cpu速度是最经济的选择。

内存大小多多善矣。

内存所有硬件中最值得花钱的项目。在自建数据中心选择物理服务器时,尽可能选择较大的内存。在数据中心或IaaS云中的虚拟服务器上部署应用程序时,你可以从更少的内存开始,然后通过点击管理界面就可以随意增加内存。但是前提是你的宿主机配备有足够大的内存,以满足需求。所以,再强调一次,尽最大可能选择最大内存。

6.确保云管理Panel界面可以看到宿主机的工作负载。

服务器的吞吐量取决于整个宿主机的工作负载,而不仅仅是在虚拟机中运行的应用程序的负载。在你签署采购云IaaS合同之前,请检查你的云管理Panel界面并了解你对跑虚拟机的宿主机的负载的可见程度。此外,如果发现其他用户几乎用尽了所有CPU,内存和网络带宽,将虚拟机VPS迁移到其他宿主机的的难易程度也需要考虑。还有一种选择就是宁可多花钱选择专用服务器。

7.考虑云架构,对实体机与虚拟机VPS做对比测试

你无法衡量你没有测试过的东西。即使云服务器的配置与物理服务器完全相同,性能也会有比较大的差异。由于同宿主机下的其他机器的影响,负载、性能可能会降低,或者由于云主机具有较新的硬件架构,性能可能会更高。如果可能的话,做一些测试来了解你的数据中心可以做什么以及IaaS云VPS可以做什么,再根据实际的需求和测试数据来做决定。

8.选择相对靠近CPU的存储,并使用高带宽,低延迟的连接

就算是你的应用程序对存储容量要求不高,服务器和存储硬件之间的连接也是一个高性能应用程序的关键。因为,加载网页需要访问磁盘。找出的硬件架构拓扑,然后检查你的每一块连接,确保存储(特别是SAN或NAS)可以快速,稳定,低延迟的连接到你的服务器。

9.确保服务器网络位于你和用户的本地。

如果你的应用程序是面向企业内部的应用,那么服务器在物理上位于何处非常重要。如果你的员工在广州,那么北京联通,或者天津移动的线路将比福州的服务器慢。不仅如此,互联网跳数越少意味着响应时间更稳定,这对用户体验和系统的并发都有影响。

当然在这个问题上云服务商的专线网络和智能CDN可以帮你解决问题。

采用远离数据中心的异地备份和灾难恢复很有用,但是日常操作还是要网络链路就近原则。

10. 不唯品牌论。

每个人都知道亚马逊AWS,谷歌GCP,微软Azure和国内的阿里云、腾讯云。然而,市面上不光是有这几个云。较小的公司可以给出更实惠的架构,和更适宜的谈判条件,甚至在技术上,服务上都会比较好一点,以选择最适宜的为准。

11.服务器托管。

之前我们的话题一直是在自建数据中心和云VPS两个方面来展开论述。这儿我再提一个,服务器托管是也许是一个更好的选择,你可以在大的BGP机房租用机架。这些机房提供了更好的基础设施,比如冗余电源,冗余冷却,更便宜的电费和24小时机房运维支持,更重要是这些机房基本和电信运营商有合作,可以提供BGP骨干网络和多线接入。

12.与多家服务商面谈,选择最具有性价比的服务

虽然服务商的网站上可以提供很多的信息和报价。但是直接面谈可以提供比你自己搜集到的信息更多的云或托管服务选项,可以商量一定的免费体验期做测试。自建数据中心也要这样做:如果IT团队不希望在部署前向业务线管理人员或软件开发人员提供有关应用程序的建议,那么让CIO或CTO协调来获得帮助。

总之,多选择,多测试,多优化。

无论你选择了那种,在部署后都要做持续实时性能测试,并检查所有相关因素,比如端到端性能,用户响应时间和每一个组件或模块。如果性能发生意外下降或者有意外发生,请做好备份和做调整。

给操作系统打补丁,核心应用程序更新,云宿主机负载或者恶意软件感染都可能导致服务器应用程序的性能和响应。

虽然用户简单的一句话 "速度很慢!",我们也不能对此不屑一顾。因为这是最终性能的真实体现。

相关文章