05.04 系統上線前關於性能優化的12件事

系統上線前關於性能優化的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協調來獲得幫助。

總之,多選擇,多測試,多優化。

無論你選擇了那種,在部署後都要做持續實時性能測試,並檢查所有相關因素,比如端到端性能,用戶響應時間和每一個組件或模塊。如果性能發生意外下降或者有意外發生,請做好備份和做調整。

給操作系統打補丁,核心應用程序更新,雲宿主機負載或者惡意軟件感染都可能導致服務器應用程序的性能和響應。

雖然用戶簡單的一句話 "速度很慢!",我們也不能對此不屑一顧。因為這是最終性能的真實體現。


分享到:


相關文章: