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

行業(yè)動(dòng)態(tài)

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

當(dāng)前位置:首頁>新聞中心>行業(yè)動(dòng)態(tài)
全部 4096 公司動(dòng)態(tài) 960 行業(yè)動(dòng)態(tài) 3136

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

時(shí)間:2022-05-01   訪問量:1991

1 服務(wù)器簡介

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

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

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

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

2.1 循環(huán)模式

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

慢(必須遍歷所有網(wǎng)絡(luò)連接)低效(可能在處理一個(gè)連接時(shí)阻塞,阻止檢查和處理其他網(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){//當(dāng)沒有數(shù)據(jù)要讀取時(shí),發(fā)生阻塞 len = read(->at(i)., data, data); //處理數(shù)據(jù) bzero(data, data);//清空緩存 }}

2.2 種方式

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

缺點(diǎn):

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

文件描述符數(shù)量太少,默認(rèn)為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);//檢測(cè)事件是否發(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的實(shí)現(xiàn)機(jī)制類似。它對(duì)應(yīng)于內(nèi)核,只是 poll 將一個(gè)數(shù)組傳遞給內(nèi)核,然后輪詢 poll 中的每個(gè)描述符。與處理 fdset 相比,poll 效率更高。

缺點(diǎn):

poll 需要檢查其中每個(gè)元素的值,以了解是否發(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);//負(fù)數(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的秘密——支撐億級(jí)IO的底層基石

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

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

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

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

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

2.4 epoll方法

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

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

例子:

void ::(std::deque *){int ;//事件個(gè)數(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ā)客戶端連接,因?yàn)榭梢栽诜?wù)器中創(chuàng)建大量線程來監(jiān)視連接。缺點(diǎn):多線程技術(shù)不適合處理長連接,因?yàn)樵趌inux中建立線程會(huì)消耗??臻g,并且在產(chǎn)生大量連接時(shí)會(huì)耗盡系統(tǒng)內(nèi)存。例子:

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

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

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

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

4 CPU多核并行計(jì)算

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

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

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

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

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

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

5.1 中斷處理

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

5.2 內(nèi)存拷貝

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

5.3 上下文切換

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

5.4 本地故障

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

5.5 內(nèi)存管理

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

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

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

DPDK官網(wǎng):

DPDK架構(gòu)圖:

高性能linux服務(wù)器運(yùn)維實(shí)戰(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è)備映射取包--->進(jìn)入用戶層協(xié)議棧--->邏輯層--->業(yè)務(wù)層

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

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

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

不同時(shí)間段,官方會(huì)給渠道不同的優(yōu)惠,優(yōu)惠30%~70%,祝你好運(yùn)??!

如果您有任何問題,請(qǐng)加入我們的粉絲群。

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

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

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

發(fā)表評(píng)論:

評(píng)論記錄:

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

在線咨詢

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

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

在線咨詢

免費(fèi)通話

24小時(shí)免費(fèi)咨詢

請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)

免費(fèi)通話

微信掃一掃

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