久久午夜夜伦鲁鲁片免费无码影视,国产一区二区三区不卡av,无码人妻一区二区三区线,成人无码av片在线观看蜜桃

行業(yè)動態(tài)

了解最新公司動態(tài)及行業(yè)資訊

當前位置:首頁>新聞中心>行業(yè)動態(tài)
全部 4163 公司動態(tài) 1027 行業(yè)動態(tài) 3136

云服務(wù)器服務(wù)器運維實戰(zhàn):如何高效處理多個客戶端連接?

時間:2022-05-01   訪問量:2068

1 服務(wù)器簡介

服務(wù)器是提供計算服務(wù)的設(shè)備。高性能Linux服務(wù)器運維。由于服務(wù)器需要響應用戶請求,因此在處理能力、穩(wěn)定性、安全性、可擴展性、可管理性等方面提出了更高的要求。隨著虛擬化技術(shù)的進步,云服務(wù)器(ECS)在國內(nèi)迅速普及服務(wù)器運維技術(shù),其管理方式比物理服務(wù)器更簡單、更高效。用戶可以快速創(chuàng)建或發(fā)布任意數(shù)量的云服務(wù)器,幫助企業(yè)降低開發(fā)、運維難度和整體IT成本,讓整個研發(fā)周期專注于核心業(yè)務(wù)創(chuàng)新。在網(wǎng)絡(luò)環(huán)境中,根據(jù)服務(wù)器提供的服務(wù)類型不同,分為文件服務(wù)器、

高性能linux服務(wù)器運維實戰(zhàn)

本次學習總結(jié)的主要內(nèi)容是高性能linux服務(wù)器的運維:

如何處理多個客戶端連接。探索面對數(shù)百萬客戶端連接的性能優(yōu)化。服務(wù)器處理并發(fā)數(shù)據(jù)的效率。深入分析大數(shù)據(jù)通信時的 Linux 內(nèi)核瓶頸。如何克服瓶頸 2 I/O 多路復用技術(shù)

2.1 循環(huán)模式

當服務(wù)器有多個網(wǎng)絡(luò)連接需要處理時,它會循環(huán)打開網(wǎng)絡(luò)連接列表以確定是否有數(shù)據(jù)要讀取。缺點:

慢(必須遍歷所有網(wǎng)絡(luò)連接)低效(可能在處理一個連接時阻塞,阻止檢查和處理其他網(wǎng)絡(luò)連接)示例:{int; ;};// std::deque ;// queue 1std::deque;// queue 2 void ::(std::deque *){char data[1024] = {0};int len ??= 0;for(int i = 0; i size( ); ++i){//當沒有數(shù)據(jù)要讀取時,發(fā)生阻塞 len = read(->at(i)., data, data); //處理數(shù)據(jù) bzero(data, data);//清空緩存 }}

2.2 種方式

首先,將第二、三、四參數(shù)所指向的點復制到內(nèi)核,輪詢每個SET描述符,并記錄在臨時結(jié)果(fdset)中。如果發(fā)生事件,臨時結(jié)果將被寫入用戶空間并返回。

缺點:

返回后,需要一一檢查描述符是否為SET(事件是否發(fā)生)。(支持的

文件描述符數(shù)量太少,默認為1024)。

例子:

無效 ::(std::deque *){char 數(shù)據(jù)[1024] = {0}; input;// fdset 記錄輪詢結(jié)果 int len = 0; 整數(shù) = 0; (&input);// 清除記錄 for(int i = 0; i size(); ++i){(->at(i)., &input); = (->at(i). + 1, &input, NULL, NULL, NULL);//檢測事件是否發(fā)生 if(> 0 && (->at(i)., &input)){//讀取數(shù)據(jù)len = read(->at(i)., data, data);//處理數(shù)據(jù) bzero(data, data);}//處理其他事情}}

2.3 輪詢方式

與 poll 不同的是,需要注意的事件通過數(shù)組傳遞給內(nèi)核,因此描述符的數(shù)量沒有限制。和 中的字段用于表示感興趣的事件和發(fā)生的事件,因此數(shù)組只需要初始化一次。poll的實現(xiàn)機制類似。它對應于內(nèi)核,只是 poll 將一個數(shù)組傳遞給內(nèi)核,然后輪詢 poll 中的每個描述符。與處理 fdset 相比,poll 效率更高。

缺點:

poll 需要檢查其中每個元素的值,以了解是否發(fā)生了事件。

例子:

std:: ;void ::(std::deque *){int = 0;int len ???= 0;char data[1024] = {0};//初始化容器 for(int i = 0; i size (); ++i){ pfd;pfd.fd = ->at(i).;//設(shè)置。= ;//設(shè)置事件 pfd. = 0;//設(shè)置無事件返回,設(shè)置為零。(pfd); }while(1){ = poll(&*.begin(), .size(), -1);//負數(shù)表示無限等待,直到有事件發(fā)生并返回for(::it = .begin(); it != .end() && > 0; ++it){ // 遍歷查看fd產(chǎn)生的事件 if (it-> & ){len = read(it->fd, buf , data); //處理數(shù)據(jù) bzero(data, data);}}//處理其他東西}}

相關(guān)視頻推薦

linux下epoll的秘密——支撐億級IO的底層基石

90分鐘了解Linux內(nèi)存架構(gòu),numa的優(yōu)勢,slab的實現(xiàn),原理

為什么dpdk越來越火,看完讓人豁然開朗

學習地址:C/C++ Linux服務(wù)器開發(fā)/后端架構(gòu)師【零語音教育】-學習視頻教程-騰訊課堂

C/C++ Linux服務(wù)器架構(gòu)師需要學習資料和獲?。ㄙY料包括C/C++、Linux、技術(shù)、Nginx、MySQL、Redis、ZK、流媒體、CDN、P2P、K8S、TCP/IP、協(xié)程、DPDK等.),免費分享

高性能linux服務(wù)器運維實戰(zhàn)

2.4 epoll方法

與 epoll 和 poll 不同的是,它不需要每次調(diào)用時都將事件描述信息復制到內(nèi)核中。第一次調(diào)用后,事件信息會與對應的 epoll 描述符相關(guān)聯(lián)。其次,epoll不是通過輪詢,而是在等待描述符上注冊一個回調(diào)函數(shù)。當事件發(fā)生時,回調(diào)函數(shù)負責將發(fā)生的事件存儲到就緒事件列表中,最后寫入用戶空間。

epoll返回后,這個參數(shù)指向的緩沖區(qū)就是發(fā)生的事件,緩沖區(qū)中的每個元素都可以被處理,不需要像poll一樣輪詢和檢查。

例子:

void ::(std::deque *){int ;//事件個數(shù) int i = 0;int len ??= 0;char data[1024] = {0};int = (1024); //(i = 0; i size(); ++i){ ev;ev. = | ;//設(shè)置觸發(fā)事件的類型 ev.data.fd = ->at(i).;//到epoll add( ( , , ->at(i)., &ev )

多線程技術(shù)還可以處理高并發(fā)客戶端連接,因為可以在服務(wù)器中創(chuàng)建大量線程來監(jiān)視連接。缺點:多線程技術(shù)不適合處理長連接,因為在linux中建立線程會消耗棧空間,并且在產(chǎn)生大量連接時會耗盡系統(tǒng)內(nèi)存。例子:

{int; pid;bool ;};std::deque ;//客戶端隊列 void ::(){int i = 0;//創(chuàng)建多線程連接 for(i = 0; i , data, data); //處理數(shù)據(jù) bzero(data, data);//清空緩存}(NULL);}

多線程+I/O多路復用技術(shù),用一個線程監(jiān)控一個端口和描述符是否有讀寫事件,然后將事件分發(fā)給其他工作線程處理數(shù)據(jù)。模型架構(gòu):

高性能linux服務(wù)器運維實戰(zhàn)

該架構(gòu)主要基于單線程I/O復用(/poll/epoll),實現(xiàn)了高并發(fā),避免了多線程I/O來回切換的各種開銷。線程進一步提高業(yè)務(wù)處理能力,避免產(chǎn)生過多線程。

4 CPU多核并行計算

程序的線程是指可以同時并發(fā)執(zhí)行的邏輯單元數(shù),通過時間片分配算法實現(xiàn);

CPU的線程是指使CPU的指令執(zhí)行過程(取指、解釋、執(zhí)行、內(nèi)存訪問、寫入數(shù)據(jù))流水線化以提高并發(fā)性的方法。

并行計算和多線程的區(qū)別:

并行計算的 CPU 利用率比多線程高,因此相對來說效率更高。并行計算是使用多個 CPU 內(nèi)核進行計算,而多線程是使用一個 CPU 內(nèi)核在不同的時間段進行計算。并行計算是在多核 CPU 上運行多個線程,多線程是在單核 CPU 上運行多個線程。

綜上所述,可以得出結(jié)論,多線程并不能真正提升數(shù)據(jù)處理能力,受限于單核CPU的性能。當服務(wù)器需要執(zhí)行大量數(shù)據(jù)操作(如圖形處理、復雜算法)時,可以考慮多核并行計算。

5 深入分析內(nèi)核性能

5.1 中斷處理

當大量數(shù)據(jù)包到達網(wǎng)絡(luò)時,會產(chǎn)生頻繁的硬件中斷請求。這些硬件中斷可以中斷較低優(yōu)先級的軟中斷或系統(tǒng)調(diào)用的執(zhí)行。高性能開銷。

5.2 內(nèi)存拷貝

一般情況下,一個網(wǎng)絡(luò)數(shù)據(jù)包從網(wǎng)卡到應用程序需要經(jīng)過以下過程:數(shù)據(jù)從網(wǎng)卡通過DMA(直接內(nèi)存訪問)等方式傳輸?shù)絻?nèi)核打開的緩沖區(qū),以及然后從內(nèi)核空間復制到用戶空間。在 Linux 內(nèi)核協(xié)議棧中,這個耗時的操作甚至占到整個數(shù)據(jù)包處理流程的 57.1%。

5.3 上下文切換

頻繁到達的硬件中斷和軟中斷隨時可能搶占系統(tǒng)調(diào)用的執(zhí)行,會產(chǎn)生大量的上下文切換開銷。此外,在基于多線程的服務(wù)器設(shè)計框架中,線程間的調(diào)度也會產(chǎn)生頻繁的上下文切換開銷。同樣,鎖競爭的能耗也是一個很嚴重的問題。

5.4 本地故障

現(xiàn)在的主流處理器都是多核的,也就是說一個數(shù)據(jù)包的處理可能會跨越多個CPU核。例如服務(wù)器運維技術(shù),一個數(shù)據(jù)包可能在cpu0上被中斷,在cpu1上以內(nèi)核態(tài)處理,在cpu2上以用戶態(tài)處理。多核很容易導致CPU緩存失效和本地失效。

5.5 內(nèi)存管理

傳統(tǒng)的服務(wù)器內(nèi)存頁是 4K。為了提高內(nèi)存訪問速度,避免緩存未命中,可以增加緩存中映射表的條目,但這會影響CPU的檢索效率。結(jié)合以上問題,可以看出內(nèi)核本身就是一個非常大的瓶頸,解決辦法就是想辦法繞過內(nèi)核。

6 高性能網(wǎng)絡(luò)框架DPDK

DPDK 提供庫函數(shù)和驅(qū)動程序支持,以在 Intel 處理器架構(gòu)下的用戶空間中進行高效的數(shù)據(jù)包處理。它不同于為通用目的而設(shè)計的Linux系統(tǒng),而是專注于對網(wǎng)絡(luò)應用程序中的數(shù)據(jù)包進行高性能處理。

DPDK官網(wǎng):

DPDK架構(gòu)圖:

高性能linux服務(wù)器運維實戰(zhàn)

Linux內(nèi)核網(wǎng)絡(luò)數(shù)據(jù)流:

硬件中斷--->獲取包分發(fā)給內(nèi)核線程--->軟件中斷--->內(nèi)核線程處理協(xié)議棧中的包--->通知用戶層和用戶層接收封裝-->網(wǎng)絡(luò)層--->邏輯層-->業(yè)務(wù)層

DPDK網(wǎng)絡(luò)數(shù)據(jù)流:

硬件中斷--->放棄中斷過程,用戶層通過設(shè)備映射取包--->進入用戶層協(xié)議棧--->邏輯層--->業(yè)務(wù)層

一起來看看dpdk取得了哪些突破?

在UIO(用戶空間I/O技術(shù))的支持下,dpdk可以繞過內(nèi)核協(xié)議棧,這本質(zhì)上要歸功于UIO技術(shù)。UIO可以攔截中斷并重置中斷回調(diào)行為,從而繞過后續(xù)的內(nèi)核協(xié)議棧。工藝流程。

本站為粉絲站,提供全網(wǎng)最新優(yōu)惠碼和最全優(yōu)惠券。本站優(yōu)惠碼只能在中文站使用,香港主機、藝術(shù)主機、美國VPS均可使用。

不同時間段,官方會給渠道不同的優(yōu)惠,優(yōu)惠30%~70%,祝你好運?。?/p>

如果您有任何問題,請加入我們的粉絲群。

馬上去中文官網(wǎng)選擇合適的虛擬主機,活動期間還贈送1個國際域名?。?/p>

上一篇:越來越多的企業(yè)把IT部門的職責交第三方公司來做

下一篇:it運維 保證系統(tǒng)完好運行,做好系統(tǒng)運行維護的管理工作,關(guān)鍵角色主要職責

發(fā)表評論:

評論記錄:

未查詢到任何數(shù)據(jù)!

在線咨詢

點擊這里給我發(fā)消息 售前咨詢專員

點擊這里給我發(fā)消息 售后服務(wù)專員

在線咨詢

免費通話

24小時免費咨詢

請輸入您的聯(lián)系電話,座機請加區(qū)號

免費通話

微信掃一掃

微信聯(lián)系
返回頂部