欧美一区二区三区四区视频|久久久久久88色偷偷|国产精品视频一区二区三区w|国产综合色在线视频|久久久久久综合七次郎|好硬好紧好湿进去了好爽

合肥做網(wǎng)站,選擇瘋狗科技,專(zhuān)業(yè)、敬業(yè)的合肥網(wǎng)絡(luò )公司
首頁(yè) > 網(wǎng)站SEO優(yōu)化 > 詳情

服務(wù)器性能優(yōu)化的常用方法?

2022-11-21 14:17:50   來(lái)源:網(wǎng)絡(luò )   瀏覽:  次
1 使用內存數據庫內存數據庫,其實(shí)就是將數據放在內存中直接操作的數據庫。相對于磁盤(pán),內存的數據讀寫(xiě)速度要高出幾個(gè)數量級,將數據保存在內存中相比從磁盤(pán)上訪(fǎng)問(wèn)能夠極大地提高應用的性能。內存數據庫拋棄了磁盤(pán)數據管理的傳

1.使用內存數據庫

內存數據庫,其實(shí)就是將數據放在內存中直接操作的數據庫。相對于磁盤(pán),內存的數據讀寫(xiě)速度要高出幾個(gè)數量級,將數據保存在內存中相比從磁盤(pán)上訪(fǎng)問(wèn)能夠極大地提高應用的性能。內存數據庫拋棄了磁盤(pán)數據管理的傳統方式,基于全部數據都在內存中重新設計了體系結構,并且在數據緩存、快速算法、并行操作方面也進(jìn)行了相應的改進(jìn),所以數據處理速度比傳統數據庫的數據處理速度要快很多。

但是安全性的問(wèn)題可以說(shuō)是內存數據庫最大的硬傷。因為內存本身有掉電丟失的天然缺陷,因此我們在使用內存數據庫的時(shí)候,通常需要,提前對內存上的數據采取一些保護機制,比如備份,記錄日志,熱備或集群,與磁盤(pán)數據庫同步等方式。對于一些重要性不高但是又想要快速響應用戶(hù)請求的部分數據可以考慮內存數據庫來(lái)存儲,同時(shí)可以定期把數據固化到磁盤(pán)。

2.使用RDD

在大數據云計算相關(guān)領(lǐng)域的一些應用中,Spark可以用來(lái)加快數據處理速度。Spark的核心是RDD,RDD最早來(lái)源與Berkeley實(shí)驗室的一篇論文《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing》?,F有的數據流系統對兩種應用的處理并不高效:一是迭代式算法,這在圖應用和機器學(xué)習領(lǐng)域很常見(jiàn);二是交互式數據挖掘工具。這兩種情況下,將數據保存在內存中能夠極大地提高性能。

3.增加緩存

很多web應用是有大量的靜態(tài)內容,這些靜態(tài)內容主要都是一些小文件,并且會(huì )被頻繁的讀,采用Apache以及nginx作為web服務(wù)器。在web訪(fǎng)問(wèn)量不大的時(shí)候,這兩個(gè)http服務(wù)器可以說(shuō)是非常的迅速和高效,如果負載量很大的時(shí)候,我們可以采用在前端搭建cache服務(wù)器,將服務(wù)器中的靜態(tài)資源文件緩存到操作系統內存中直接進(jìn)行讀操作,因為直接從內存讀取數據的速度要遠大于從硬盤(pán)讀取。這個(gè)其實(shí)也是增加內存的成本來(lái)降低訪(fǎng)問(wèn)磁盤(pán)帶來(lái)的時(shí)間消耗。

4.使用SSD

除了對內存方面的優(yōu)化,還可以對磁盤(pán)這邊進(jìn)行優(yōu)化。跟傳統機械硬盤(pán)相比,固態(tài)硬盤(pán)具有快速讀寫(xiě)、質(zhì)量輕、能耗低以及體積小等特點(diǎn)。但是ssd的價(jià)格相比傳統機械硬盤(pán)要貴,有條件的可以使用ssd來(lái)代替機械硬盤(pán)。

5.優(yōu)化數據庫

大部分的服務(wù)器請求最終都是要落到數據庫中,隨著(zhù)數據量的增加,數據庫的訪(fǎng)問(wèn)速度也會(huì )越來(lái)越慢。想要提升請求處理速度,必須要對原來(lái)的單表進(jìn)行動(dòng)刀了。目前主流的Linux服務(wù)器使用的數據庫要屬mysql了,如果我們使用mysql存儲的數據單個(gè)表的記錄達到千萬(wàn)級別的話(huà),查詢(xún)速度會(huì )很慢的。根據業(yè)務(wù)上合適的規則對數據庫進(jìn)行分區分表,可以有效提高數據庫的訪(fǎng)問(wèn)速度,提升服務(wù)器的整體性能。另外對于業(yè)務(wù)上查詢(xún)請求,在建表的時(shí)候可以根據相關(guān)需求設置索引等,以提高查詢(xún)速度。

6.選擇合適的IO模型

IO模型又分為:

(1).阻塞I/O模型:數據沒(méi)到達之前,I/O一直阻塞,如果數據到達,則會(huì )返回。典型的是recvfrom,一般的默認都是阻塞的。

(2).非阻塞的I/O模型:和阻塞相反,只要不能得到結果的時(shí)候,I/O立刻返回。不會(huì )阻塞當前線(xiàn)程。

IO復用模型:也就是自己要學(xué)習的部分。多路復用的意思是,將多路信號合并到一路上進(jìn)行處理,類(lèi)似多個(gè)管道匯集到一個(gè)管道,與之相反的是多路分解。

IO復用模型主要是select,poll,epoll;對一個(gè)IO端口,兩次調用,兩次返回,比阻塞IO并沒(méi)有什么優(yōu)越性;關(guān)鍵是能實(shí)現同時(shí)對多個(gè)IO端口進(jìn)行監聽(tīng);函數也會(huì )使進(jìn)程阻塞,但是和阻塞I/O所不同的的,這兩個(gè)函數可以同時(shí)阻塞多個(gè)I/O操作。而且可以同時(shí)對多個(gè)讀操作,多個(gè)寫(xiě)操作的I/O函數進(jìn)行檢測,直到有數據可讀或可寫(xiě)時(shí),才真正調用I/O操作函數。

信號驅動(dòng):首先開(kāi)啟套接口信號驅動(dòng)I/O功能,并通過(guò)系統調用sigaction安裝一個(gè)信號處理函數。當數據報準備好被讀時(shí),就為該進(jìn)程生成一個(gè)SIGIO信號。隨即可以在信號處理程序中調用recvfrom來(lái)讀數據報,井通知主循環(huán)數據已準備好被處理中。也可以通知主循環(huán),讓它來(lái)讀數據報。

異步的IO模型:告知內核啟動(dòng)某個(gè)操作,并讓內核在整個(gè)操作完成后(包括將數據從內核拷貝到用戶(hù)自己的緩沖區)通知我們。這里并不是說(shuō)一定要用某個(gè)模型,epoll也并不是在所有情況下都比select性能要好的,在選擇的時(shí)候還是要結合業(yè)務(wù)需求來(lái)。

7.使用多核處理策略

現在運行服務(wù)器的主流機器配置都是多核CPU的,我們在設計服務(wù)器的時(shí)候可以利用多核心的特點(diǎn),采用多進(jìn)程或者多線(xiàn)程的框架。關(guān)于選擇多線(xiàn)程還是多進(jìn)程可以根據實(shí)際的需求,結合各自的優(yōu)缺點(diǎn)進(jìn)行選擇。對于多線(xiàn)程的使用,特別是使用線(xiàn)程池的時(shí)候可以通過(guò)測試不同線(xiàn)程池服務(wù)器的性能來(lái)設置合適的線(xiàn)程池。

8.分布式部署程序

當單機服務(wù)器已經(jīng)找不到合適的優(yōu)化點(diǎn)時(shí),我們可以通過(guò)分布式部署來(lái)提高服務(wù)器的響應能力。優(yōu)秀的服務(wù)器開(kāi)發(fā)都會(huì )為自己的服務(wù)器的擴容,容災提出一些解決方案。個(gè)人覺(jué)得服務(wù)器設計的時(shí)候簡(jiǎn)單點(diǎn)比較好,這樣后期擴容的時(shí)候會(huì )很方便。

---------------------

作者:老樊Lu碼

來(lái)源:CSDN

欧美一区二区三区四区视频|久久久久久88色偷偷|国产精品视频一区二区三区w|国产综合色在线视频|久久久久久综合七次郎|好硬好紧好湿进去了好爽