0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

提高性能的 socket 選項(xiàng)

科技綠洲 ? 來(lái)源:Linux開(kāi)發(fā)架構(gòu)之路 ? 作者:Linux開(kāi)發(fā)架構(gòu)之路 ? 2023-11-13 11:02 ? 次閱讀

在開(kāi)發(fā) socket 應(yīng)用程序時(shí),首要任務(wù)通常是確??煽啃圆M足一些特定的需求。利用本文中給出的 4 個(gè)提示,您就可以從頭開(kāi)始為實(shí)現(xiàn)最佳性能來(lái)設(shè)計(jì)并開(kāi)發(fā) socket 程序。本文內(nèi)容包括對(duì)于 Sockets API 的使用、兩個(gè)可以提高性能的 socket 選項(xiàng)以及 GNU/Linux 優(yōu)化。

為了能夠開(kāi)發(fā)性能卓越的應(yīng)用程序,請(qǐng)遵循以下技巧:

  • 最小化報(bào)文傳輸?shù)难訒r(shí)。
  • 最小化系統(tǒng)調(diào)用的負(fù)載。
  • 為 Bandwidth Delay Product 調(diào)節(jié) TCP 窗口。
  • 動(dòng)態(tài)優(yōu)化 GNU/Linux TCP/IP 棧。

技巧 1. 最小化報(bào)文傳輸?shù)难訒r(shí)

在通過(guò) TCP socket 進(jìn)行通信時(shí),數(shù)據(jù)都拆分成了數(shù)據(jù)塊,這樣它們就可以封裝到給定連接的 TCP payload(指 TCP 數(shù)據(jù)包中的有效負(fù)荷)中了。TCP payload 的大小取決于幾個(gè)因素(例如最大報(bào)文長(zhǎng)度和路徑),但是這些因素在連接發(fā)起時(shí)都是已知的。為了達(dá)到最好的性能,我們的目標(biāo)是使用盡可能多的可用數(shù)據(jù)來(lái)填充 每個(gè)報(bào)文。當(dāng)沒(méi)有足夠的數(shù)據(jù)來(lái)填充 payload 時(shí)(也稱為最大報(bào)文段長(zhǎng)度(maximum segment size) 或 MSS),TCP 就會(huì)采用 Nagle 算法自動(dòng)將一些小的緩沖區(qū)連接到一個(gè)報(bào)文段中。這樣可以通過(guò)最小化所發(fā)送的報(bào)文的數(shù)量來(lái)提高應(yīng)用程序的效率,并減輕整體的網(wǎng)絡(luò)擁塞問(wèn)題。

盡管 John Nagle 的算法可以通過(guò)將這些數(shù)據(jù)連接成更大的報(bào)文來(lái)最小化所發(fā)送的報(bào)文的數(shù)量,但是有時(shí)您可能希望只發(fā)送一些較小的報(bào)文。一個(gè)簡(jiǎn)單的例子是 telnet 程序,它讓用戶可以與遠(yuǎn)程系統(tǒng)進(jìn)行交互,這通常都是通過(guò)一個(gè) shell 來(lái)進(jìn)行的。如果用戶被要求用發(fā)送報(bào)文之前輸入的字符來(lái)填充某個(gè)報(bào)文段,那么這種方法就絕對(duì)不能滿足我們的需要。

另外一個(gè)例子是 HTTP 協(xié)議。通常,客戶機(jī)瀏覽器會(huì)產(chǎn)生一個(gè)小請(qǐng)求(一條 HTTP 請(qǐng)求消息),然后 Web 服務(wù)器就會(huì)返回一個(gè)更大的響應(yīng)(Web 頁(yè)面)。

解決方案

您應(yīng)該考慮的第一件事情是 Nagle 算法滿足一種需求。由于這種算法對(duì)數(shù)據(jù)進(jìn)行合并,試圖構(gòu)成一個(gè)完整的 TCP 報(bào)文段,因此它會(huì)引入一些延時(shí)。但是這種算法可以最小化在線路上發(fā)送的報(bào)文的數(shù)量,因此可以最小化網(wǎng)絡(luò)擁塞的問(wèn)題。

但是在需要最小化傳輸延時(shí)的情況中,Sockets API 可以提供一種解決方案。要禁用 Nagle 算法,您可以設(shè)置 TCP_NODELAY socket 選項(xiàng),如清單 1 所示。

清單 1. 為 TCP socket 禁用 Nagle 算法

int sock, flag, ret;

/* Create new stream socket */
sock = socket( AF_INET, SOCK_STREAM, 0 );

/* Disable the Nagle (TCP No Delay) algorithm */
flag = 1;
ret = setsockopt( sock, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(flag) );

if (ret == -1) {
  printf("Couldn't setsockopt(TCP_NODELAY)n");
  exit(-1);
}

提示:使用 Samba 的實(shí)驗(yàn)表明,在從 Microsoft? Windows? 服務(wù)器上的 Samba 驅(qū)動(dòng)器上讀取數(shù)據(jù)時(shí),禁用 Nagle 算法幾乎可以加倍提高讀性能。

技巧 2. 最小化系統(tǒng)調(diào)用的負(fù)載

任何時(shí)候通過(guò)一個(gè) socket 來(lái)讀寫(xiě)數(shù)據(jù)時(shí),您都是在使用一個(gè) 系統(tǒng)調(diào)用(system call) 。這個(gè)調(diào)用(例如 readwrite)跨越了用戶空間應(yīng)用程序與內(nèi)核的邊界。另外,在進(jìn)入內(nèi)核之前,您的調(diào)用會(huì)通過(guò) C 庫(kù)來(lái)進(jìn)入內(nèi)核中的一個(gè)通用函數(shù)(system_call())。從 system_call() 中,這個(gè)調(diào)用會(huì)進(jìn)入文件系統(tǒng)層,內(nèi)核會(huì)在這兒確定正在處理的是哪種類型的設(shè)備。最后,調(diào)用會(huì)進(jìn)入 socket 層,數(shù)據(jù)就是在這里進(jìn)行讀取或進(jìn)行排隊(duì)從而通過(guò) socket 進(jìn)行傳輸?shù)模ㄟ@涉及數(shù)據(jù)的副本)。

這個(gè)過(guò)程說(shuō)明系統(tǒng)調(diào)用不僅僅是在應(yīng)用程序和內(nèi)核中進(jìn)行操作的,而且還要經(jīng)過(guò)應(yīng)用程序和內(nèi)核中的很多層次。這個(gè)過(guò)程耗費(fèi)的資源很高,因此調(diào)用次數(shù)越多,通過(guò)這個(gè)調(diào)用鏈進(jìn)行的工作所需要的時(shí)間就越長(zhǎng),應(yīng)用程序的性能也就越低。

由于我們無(wú)法避免這些系統(tǒng)調(diào)用,因此惟一的選擇是最小化使用這些調(diào)用的次數(shù)。幸運(yùn)的是,我們可以對(duì)這個(gè)過(guò)程進(jìn)行控制。

解決方案

在將數(shù)據(jù)寫(xiě)入一個(gè) socket 時(shí),盡量一次寫(xiě)入所有的數(shù)據(jù),而不是執(zhí)行多次寫(xiě)數(shù)據(jù)的操作。對(duì)于讀操作來(lái)說(shuō),最好傳入可以支持的最大緩沖區(qū),因?yàn)槿绻麤](méi)有足夠多的數(shù)據(jù),內(nèi)核也會(huì)試圖填充 整個(gè)緩沖區(qū)(另外還需要保持 TCP 的通告窗口為打開(kāi)狀態(tài))。這樣,您就可以最小化調(diào)用的次數(shù),并可以實(shí)現(xiàn)更好的整體性能。

技巧 3. 為 Bandwidth Delay Product 調(diào)節(jié) TCP 窗口

TCP 的性能取決于幾個(gè)方面的因素。兩個(gè)最重要的因素是 鏈接帶寬(link bandwidth) (報(bào)文在網(wǎng)絡(luò)上傳輸?shù)乃俾剩┖?往返時(shí)間(round-trip time) 或 RTT(發(fā)送報(bào)文與接收到另一端的響應(yīng)之間的延時(shí))。這兩個(gè)值確定了稱為 Bandwidth Delay Product (BDP)的內(nèi)容。

給定鏈接帶寬和 RTT 之后,您就可以計(jì)算出 BDP 的值了,不過(guò)這代表什么意義呢?BDP 給出了一種簡(jiǎn)單的方法來(lái)計(jì)算理論上最優(yōu)的 TCP socket 緩沖區(qū)大小(其中保存了排隊(duì)等待傳輸和等待應(yīng)用程序接收的數(shù)據(jù))。如果緩沖區(qū)太小,那么 TCP 窗口就不能完全打開(kāi),這會(huì)對(duì)性能造成限制。如果緩沖區(qū)太大,那么寶貴的內(nèi)存資源就會(huì)造成浪費(fèi)。如果您設(shè)置的緩沖區(qū)大小正好合適,那么就可以完全利用可用的 帶寬。下面我們來(lái)看一個(gè)例子:

BDP = link_bandwidth * RTT

如果應(yīng)用程序是通過(guò)一個(gè) 100Mbps 的局域網(wǎng)進(jìn)行通信,其 RRT 為 50 ms,那么 BDP 就是:

100MBps * 0.050 sec / 8 = 0.625MB = 625KB

注意:此處除以 8 是將位轉(zhuǎn)換成通信使用的字節(jié)。

因此,我們可以將 TCP 窗口設(shè)置為 BDP 或 1.25MB。但是在 Linux 2.6 上默認(rèn)的 TCP 窗口大小是 110KB,這會(huì)將連接的帶寬限制為 2.2MBps,計(jì)算方法如下:

throughput = window_size / RTT``110KB / 0.050 = 2.2MBps

如果使用上面計(jì)算的窗口大小,我們得到的帶寬就是 12.5MBps,計(jì)算方法如下:

625KB / 0.050 = 12.5MBps

差別的確很大,并且可以為 socket 提供更大的吞吐量。因此現(xiàn)在您就知道如何為您的 socket 計(jì)算最優(yōu)的緩沖區(qū)大小了。但是又該如何來(lái)改變呢?

解決方案

Sockets API 提供了幾個(gè) socket 選項(xiàng),其中兩個(gè)可以用于修改 socket 的發(fā)送和接收緩沖區(qū)的大小。清單 2 展示了如何使用 SO_SNDBUFSO_RCVBUF 選項(xiàng)來(lái)調(diào)整發(fā)送和接收緩沖區(qū)的大小。

注意:盡管 socket 緩沖區(qū)的大小確定了通告 TCP 窗口的大小,但是 TCP 還在通告窗口內(nèi)維護(hù)了一個(gè)擁塞窗口。因此,由于這個(gè)擁塞窗口的存在,給定的 socket 可能永遠(yuǎn)都不會(huì)利用最大的通告窗口。

清單 2. 手動(dòng)設(shè)置發(fā)送和接收 socket 緩沖區(qū)大小

int ret, sock, sock_buf_size;

sock = socket( AF_INET, SOCK_STREAM, 0 );

sock_buf_size = BDP;

ret = setsockopt( sock, SOL_SOCKET, SO_SNDBUF,
                   (char *)&sock_buf_size, sizeof(sock_buf_size) );

ret = setsockopt( sock, SOL_SOCKET, SO_RCVBUF,
                   (char *)&sock_buf_size, sizeof(sock_buf_size) );

在 Linux 2.6 內(nèi)核中,發(fā)送緩沖區(qū)的大小是由調(diào)用用戶來(lái)定義的,但是接收緩沖區(qū)會(huì)自動(dòng)加倍。您可以進(jìn)行 getsockopt 調(diào)用來(lái)驗(yàn)證每個(gè)緩沖區(qū)的大小。

巨幀(jumbo frame) 
我們還可以考慮將包的大小從 1,500 字節(jié)修改為 9,000 字節(jié)(稱為巨幀)。在本地網(wǎng)絡(luò)中可以通過(guò)設(shè)置最大傳輸單元(Maximum Transmit Unit,MTU)來(lái)設(shè)置巨幀,這可以極大地提高性能。

就 window scaling 來(lái)說(shuō),TCP 最初可以支持最大為 64KB 的窗口(使用 16 位的值來(lái)定義窗口的大?。?。采用 window scaling(RFC 1323)擴(kuò)展之后,您就可以使用 32 位的值來(lái)表示窗口的大小了。GNU/Linux 中提供的 TCP/IP ??梢灾С诌@個(gè)選項(xiàng)(以及其他一些選項(xiàng))。

提示:Linux 內(nèi)核還包括了自動(dòng)對(duì)這些 socket 緩沖區(qū)進(jìn)行優(yōu)化的能力(請(qǐng)參閱下面 表 1 中的 tcp_rmemtcp_wmem),不過(guò)這些選項(xiàng)會(huì)對(duì)整個(gè)棧造成影響。如果您只需要為一個(gè)連接或一類連接調(diào)節(jié)窗口的大小,那么這種機(jī)制也許不能滿足您的需要了。

技巧 4. 動(dòng)態(tài)優(yōu)化 GNU/Linux TCP/IP 棧

標(biāo)準(zhǔn)的 GNU/Linux 發(fā)行版試圖對(duì)各種部署情況都進(jìn)行優(yōu)化。這意味著標(biāo)準(zhǔn)的發(fā)行版可能并沒(méi)有對(duì)您的環(huán)境進(jìn)行特殊的優(yōu)化。

解決方案

GNU/Linux 提供了很多可調(diào)節(jié)的內(nèi)核參數(shù),您可以使用這些參數(shù)為您自己的用途對(duì)操作系統(tǒng)進(jìn)行動(dòng)態(tài)配置。下面我們來(lái)了解一下影響 socket 性能的一些更重要的選項(xiàng)。

/proc 虛擬文件系統(tǒng)中存在一些可調(diào)節(jié)的內(nèi)核參數(shù)。這個(gè)文件系統(tǒng)中的每個(gè)文件都表示一個(gè)或多個(gè)參數(shù),它們可以通過(guò) cat 工具進(jìn)行讀取,或使用 echo 命令進(jìn)行修改。清單 3 展示了如何查詢或啟用一個(gè)可調(diào)節(jié)的參數(shù)(在這種情況中,可以在 TCP/IP 棧中啟用 IP 轉(zhuǎn)發(fā))。

清單 3. 調(diào)優(yōu):在 TCP/IP 棧中啟用 IP 轉(zhuǎn)發(fā)

[root@camus]# cat /proc/sys/net/ipv4/ip_forward
0
[root@camus]# echo "1" > /poc/sys/net/ipv4/ip_forward
[root@camus]# cat /proc/sys/net/ipv4/ip_forward
1
[root@camus]#

表 1 給出了幾個(gè)可調(diào)節(jié)的參數(shù),它們可以幫助您提高 Linux TCP/IP 棧的性能。

可調(diào)節(jié)的參數(shù)默認(rèn)值選項(xiàng)說(shuō)明
/proc/sys/net/core/rmem_default"110592"定義默認(rèn)的接收窗口大小;對(duì)于更大的 BDP 來(lái)說(shuō),這個(gè)大小也應(yīng)該更大。
/proc/sys/net/core/rmem_max"110592"定義接收窗口的最大大?。粚?duì)于更大的 BDP 來(lái)說(shuō),這個(gè)大小也應(yīng)該更大。
/proc/sys/net/core/wmem_default"110592"定義默認(rèn)的發(fā)送窗口大??;對(duì)于更大的 BDP 來(lái)說(shuō),這個(gè)大小也應(yīng)該更大。
/proc/sys/net/core/wmem_max"110592"定義發(fā)送窗口的最大大?。粚?duì)于更大的 BDP 來(lái)說(shuō),這個(gè)大小也應(yīng)該更大。
/proc/sys/net/ipv4/tcp_window_scaling"1"啟用 RFC 1323 定義的 window scaling;要支持超過(guò) 64KB 的窗口,必須啟用該值。
/proc/sys/net/ipv4/tcp_sack"1"啟用有選擇的應(yīng)答(Selective Acknowledgment),這可以通過(guò)有選擇地應(yīng)答亂序接收到的報(bào)文來(lái)提高性能(這樣可以讓發(fā)送者只發(fā)送丟失的報(bào)文段);(對(duì)于廣域網(wǎng)通信來(lái)說(shuō))這個(gè)選項(xiàng)應(yīng)該啟用,但是這會(huì)增加對(duì) CPU 的占用。
/proc/sys/net/ipv4/tcp_fack"1"啟用轉(zhuǎn)發(fā)應(yīng)答(Forward Acknowledgment),這可以進(jìn)行有選擇應(yīng)答(SACK)從而減少擁塞情況的發(fā)生;這個(gè)選項(xiàng)也應(yīng)該啟用。
/proc/sys/net/ipv4/tcp_timestamps"1"以一種比重發(fā)超時(shí)更精確的方法(請(qǐng)參閱 RFC 1323)來(lái)啟用對(duì) RTT 的計(jì)算;為了實(shí)現(xiàn)更好的性能應(yīng)該啟用這個(gè)選項(xiàng)。
/proc/sys/net/ipv4/tcp_mem"24576 32768 49152"確定 TCP 棧應(yīng)該如何反映內(nèi)存使用;每個(gè)值的單位都是內(nèi)存頁(yè)(通常是4KB)。第一個(gè)值是內(nèi)存使用的下限。第二個(gè)值是內(nèi)存壓力模式開(kāi)始對(duì)緩沖區(qū)使用應(yīng)用壓力的上限。第三個(gè)值是內(nèi)存上限。在這個(gè)層次上可以將報(bào)文丟棄,從而減少對(duì)內(nèi)存的使用。對(duì)于較大的 BDP 可以增大這些值(但是要記住,其單位是內(nèi)存頁(yè),而不是字節(jié))。
/proc/sys/net/ipv4/tcp_wmem"4096 16384 131072"為自動(dòng)調(diào)優(yōu)定義每個(gè) socket 使用的內(nèi)存。第一個(gè)值是為 socket 的發(fā)送緩沖區(qū)分配的最少字節(jié)數(shù)。第二個(gè)值是默認(rèn)值(該值會(huì)被 wmem_default 覆蓋),緩沖區(qū)在系統(tǒng)負(fù)載不重的情況下可以增長(zhǎng)到這個(gè)值。第三個(gè)值是發(fā)送緩沖區(qū)空間的最大字節(jié)數(shù)(該值會(huì)被 wmem_max 覆蓋)。
/proc/sys/net/ipv4/tcp_rmem"4096 87380 174760"與 tcp_wmem 類似,不過(guò)它表示的是為自動(dòng)調(diào)優(yōu)所使用的接收緩沖區(qū)的值。
/proc/sys/net/ipv4/tcp_low_latency"0"允許 TCP/IP 棧適應(yīng)在高吞吐量情況下低延時(shí)的情況;這個(gè)選項(xiàng)應(yīng)該禁用。
/proc/sys/net/ipv4/tcp_westwood"0"啟用發(fā)送者端的擁塞控制算法,它可以維護(hù)對(duì)吞吐量的評(píng)估,并試圖對(duì)帶寬的整體利用情況進(jìn)行優(yōu)化;對(duì)于 WAN 通信來(lái)說(shuō)應(yīng)該啟用這個(gè)選項(xiàng)。
/proc/sys/net/ipv4/tcp_bic"1"為快速長(zhǎng)距離網(wǎng)絡(luò)啟用 Binary Increase Congestion;這樣可以更好地利用以 GB 速度進(jìn)行操作的鏈接;對(duì)于 WAN 通信應(yīng)該啟用這個(gè)選項(xiàng)。

與任何調(diào)優(yōu)努力一樣,最好的方法實(shí)際上就是不斷進(jìn)行實(shí)驗(yàn)。您的應(yīng)用程序的行為、處理器的速度以及可 用內(nèi)存的多少都會(huì)影響到這些參數(shù)影響性能的方式。在某些情況中,您認(rèn)為有益的操作可能恰恰是有害的(反之亦然)。因此,我們需要逐一試驗(yàn)各個(gè)選項(xiàng),然后檢 查每個(gè)選項(xiàng)的結(jié)果。換而言之,我們需要相信自己的經(jīng)驗(yàn),但是對(duì)每次修改都要進(jìn)行驗(yàn)證。

提示:下面介紹一個(gè)有關(guān)永久性配置的問(wèn)題。注意,如果您重新啟動(dòng)了 GNU/Linux 系統(tǒng),那么您所需要的任何可調(diào)節(jié)的內(nèi)核參數(shù)都會(huì)恢復(fù)成默認(rèn)值。為了將您所設(shè)置的值作為這些參數(shù)的默認(rèn)值,可以使用 /etc/sysctl.conf 在系統(tǒng)啟動(dòng)時(shí)將這些參數(shù)配置成您所設(shè)置的值。

GNU/Linux 工具

GNU/Linux 對(duì)我非常有吸引力,這是因?yàn)槠渲杏泻芏喙ぞ呖梢允褂?。盡管其中大部分都是命令行工具,但是它們都非常有用,而且非常直觀。GNU/Linux 提供了幾個(gè)工具 —— 有些是 GNU/Linux 自己提供的,有些是開(kāi)放源碼軟件 —— 用于調(diào)試網(wǎng)絡(luò)應(yīng)用程序,測(cè)量帶寬/吞吐量,以及檢查鏈接的使用情況。

表 2 列出最有用的幾個(gè) GNU/Linux 工具,以及它們的用途。表 3 列出了 GNU/Linux 發(fā)行版沒(méi)有提供的幾個(gè)有用工具。。

GNU/Linux 工具用途
ping這是用于檢查主機(jī)的可用性的最常用的工具,但是也可以用于識(shí)別帶寬延時(shí)產(chǎn)品計(jì)算的 RTT。
traceroute打印某個(gè)連接到網(wǎng)絡(luò)主機(jī)所經(jīng)過(guò)的包括一系列路由器和網(wǎng)關(guān)的路徑(路由),從而確定每個(gè) hop 之間的延時(shí)。
netstat確定有關(guān)網(wǎng)絡(luò)子系統(tǒng)、協(xié)議和連接的各種統(tǒng)計(jì)信息。
tcpdump顯示一個(gè)或多個(gè)連接的協(xié)議級(jí)的報(bào)文跟蹤信息;其中還包括時(shí)間信息,您可以使用這些信息來(lái)研究不同協(xié)議服務(wù)的報(bào)文時(shí)間。
GNU/Linux 工具用途
netlog為應(yīng)用程序提供一些有關(guān)網(wǎng)絡(luò)性能方面的信息。
nettimer為瓶頸鏈接帶寬生成一個(gè)度量標(biāo)準(zhǔn);可以用于協(xié)議的自動(dòng)優(yōu)化。
Ethereal以一個(gè)易于使用的圖形化界面提供了 tcpump(報(bào)文跟蹤)的特性。
iperf測(cè)量 TCP 和 UDP 的網(wǎng)絡(luò)性能;測(cè)量最大帶寬,并匯報(bào)延時(shí)和數(shù)據(jù)報(bào)的丟失情況。

結(jié)束語(yǔ)

嘗試使用本文中介紹的技巧和技術(shù)來(lái)提高 socket 應(yīng)用程序的性能,包括通過(guò)禁用 Nagle 算法來(lái)減少傳輸延時(shí),通過(guò)設(shè)置緩沖區(qū)的大小來(lái)提高 socket 帶寬的利用,通過(guò)最小化系統(tǒng)調(diào)用的個(gè)數(shù)來(lái)降低系統(tǒng)調(diào)用的負(fù)載,以及使用可調(diào)節(jié)的內(nèi)核參數(shù)來(lái)優(yōu)化 Linux 的 TCP/IP 棧。

在進(jìn)行優(yōu)化時(shí)還需要考慮應(yīng)用程序的特性。例如,您的應(yīng)用程序是基于 LAN 的還是會(huì)通過(guò) Internet 進(jìn)行通信?如果您的應(yīng)用程序僅僅會(huì)在 LAN 內(nèi)部進(jìn)行操作,那么增大 socket 緩沖區(qū)的大小可能不會(huì)帶來(lái)太大的改進(jìn),不過(guò)啟用巨幀卻一定會(huì)極大地改進(jìn)性能!

最后,還要使用 tcpdumpEthereal 來(lái)檢查優(yōu)化之后的結(jié)果。在報(bào)文級(jí)看到的變化可以幫助展示使用這些技術(shù)進(jìn)行優(yōu)化之后所取得的成功效果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7108

    瀏覽量

    89302
  • 封裝
    +關(guān)注

    關(guān)注

    127

    文章

    7966

    瀏覽量

    143187
  • Socket
    +關(guān)注

    關(guān)注

    0

    文章

    212

    瀏覽量

    34779
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3286

    瀏覽量

    57787
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    高性能實(shí)用工具??我愛(ài)發(fā)明??生活好妙招? #硬聲創(chuàng)作季

    DIY高性能
    Hello,World!
    發(fā)布于 :2022年09月26日 20:52:22

    #硬聲創(chuàng)作季 計(jì)算機(jī)組成原理詳解:116.測(cè)試提高性能

    計(jì)算機(jī)原理高性能
    Mr_haohao
    發(fā)布于 :2022年10月16日 23:05:12

    #硬聲創(chuàng)作季 家里的音箱壞了,便制作了一個(gè)高性能的移動(dòng)音箱

    音箱DIY高性能
    Mr_haohao
    發(fā)布于 :2022年10月20日 23:03:23

    PQFN封裝技術(shù)提高性能

    組裝。對(duì)于功率應(yīng)用而言,Power SO-8封裝具有增強(qiáng)的引線框設(shè)計(jì),與普通SO-8封裝結(jié)構(gòu)相比具有更強(qiáng)的電流處理能力。不過(guò),市場(chǎng)對(duì)于提高功率處理能力、功率密度和能效的不變需求要求設(shè)計(jì)人員不斷在性能方面
    發(fā)表于 09-12 15:14

    射頻VMMK器件是怎么通過(guò)降低寄生電感和電容提高性能的?

    射頻VMMK器件是怎么提高性能的?通過(guò)降低寄生電感和電容嗎?
    發(fā)表于 08-01 08:23

    基于Linux怎么提高Socket性能?

    隨著Intenet的日益發(fā)展和普及,網(wǎng)絡(luò)在嵌入式系統(tǒng)中應(yīng)用非常廣泛,越來(lái)越多的嵌入式設(shè)備采用Linux操作系統(tǒng)。Linux是一個(gè)源代碼公開(kāi)的免費(fèi)操作系統(tǒng),具有強(qiáng)移植性,所以對(duì)基于Linux的Socket網(wǎng)絡(luò)編程的研究越來(lái)越重要。
    發(fā)表于 10-14 07:57

    如何提高FPGA的系統(tǒng)性能

    本文基于Viitex-5 LX110驗(yàn)證平臺(tái)的設(shè)計(jì),探索了高性能FPGA硬件系統(tǒng)設(shè)計(jì)的一般性方法及流程,以提高FPGA的系統(tǒng)性能。
    發(fā)表于 04-26 06:43

    如何提高unix socket的穩(wěn)定性?

    PHP-FPM是什么?怎么實(shí)現(xiàn)nginx與php-fpm的通信?如何提高unix socket的穩(wěn)定性?
    發(fā)表于 06-10 08:27

    win10系統(tǒng)沒(méi)有電源高性能選項(xiàng)該怎么辦呢

    、Power,右側(cè)可以看到CsEnabled選項(xiàng),雙擊,將數(shù)值“1”改為“0”,然后點(diǎn)擊確定,最后重啟電腦。這是一個(gè)大神那里看到的,然后我自己親測(cè)成功。。最后添加創(chuàng)建電源計(jì)劃,選高性能就行找到注冊(cè)表,將1改為0,確定,關(guān)閉注冊(cè)表找到電源
    發(fā)表于 12-31 06:29

    高性能選項(xiàng)和卓越性能基礎(chǔ)知識(shí)總結(jié)

    卓越模式1.1 基礎(chǔ)知識(shí):高性能選項(xiàng)和卓越性能個(gè)人總結(jié)為:卓越性能會(huì)降低電壓,提高功耗,使硬件溫度更低,耗電更快,速度更快 一般默認(rèn)的設(shè)置是
    發(fā)表于 03-02 07:43

    通過(guò)修改電源選項(xiàng),提高cpu使用效率。

    -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61如果正確,會(huì)在下一行顯示卓越性能啥的?,F(xiàn)在打開(kāi)控制面板的電源選項(xiàng),選擇卓越性能(在下面的下拉菜單里)。這樣就能
    發(fā)表于 01-05 14:36 ?2次下載
    通過(guò)修改電源<b class='flag-5'>選項(xiàng)</b>,<b class='flag-5'>提高</b>cpu使用效率。

    win10系統(tǒng)沒(méi)有電源高性能選項(xiàng)

    、Power,右側(cè)可以看到CsEnabled選項(xiàng),雙擊,將數(shù)值“1”改為“0”,然后點(diǎn)擊確定,最后重啟電腦。這是一個(gè)大神那里看到的,然后我自己親測(cè)成功。。最后添加創(chuàng)建電源計(jì)劃,選高性能就行找到注冊(cè)表,將1改為0,確定,關(guān)閉注冊(cè)表找到電源
    發(fā)表于 01-11 10:07 ?1次下載
    win10系統(tǒng)沒(méi)有電源<b class='flag-5'>高性能</b><b class='flag-5'>選項(xiàng)</b>

    如何提高TCP Socket讀寫(xiě)操作的性能

    一、引言 1.1、TCP Socket在網(wǎng)絡(luò)通信中的重要性 TCP Socket在網(wǎng)絡(luò)通信中的重要性體現(xiàn)在其提供了可靠的數(shù)據(jù)傳輸、連接性、多路復(fù)用等特性,是實(shí)現(xiàn)各種網(wǎng)絡(luò)應(yīng)用的基礎(chǔ),同時(shí)具有廣泛
    的頭像 發(fā)表于 11-08 16:45 ?1064次閱讀

    Socket緩存如何影響TCP的性能

    一直以來(lái)我們都知道socket的緩存會(huì)對(duì)tcp性能產(chǎn)生影響,也有無(wú)數(shù)文章告訴我們應(yīng)該調(diào)大socke緩存。但是究竟調(diào)多大?什么時(shí)候調(diào)?有哪些手段調(diào)?具體影響究竟如何?這些問(wèn)題似乎也沒(méi)有人真正說(shuō)明
    的頭像 發(fā)表于 11-09 10:13 ?654次閱讀

    如何優(yōu)化socket連接性能

    在現(xiàn)代網(wǎng)絡(luò)應(yīng)用中,Socket連接是數(shù)據(jù)傳輸?shù)幕A(chǔ)。無(wú)論是客戶端還是服務(wù)器,優(yōu)化Socket連接性能對(duì)于提高應(yīng)用響應(yīng)速度和用戶體驗(yàn)至關(guān)重要。 1. 選擇合適的
    的頭像 發(fā)表于 11-04 09:16 ?432次閱讀