成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nginx服務(wù)器上軟中斷過高問題如何解決?

運(yùn)維 系統(tǒng)運(yùn)維
前些天發(fā)現(xiàn)XEN虛擬機(jī)上的Nginx服務(wù)器存在一個(gè)問題:軟中斷過高,而且大部分都集中在同一個(gè)CPU,一旦系統(tǒng)繁忙,此CPU就會(huì)成為木桶的短板。

前些天發(fā)現(xiàn)XEN虛擬機(jī)上的Nginx服務(wù)器存在一個(gè)問題:軟中斷過高,而且大部分都集中在同一個(gè)CPU,一旦系統(tǒng)繁忙,此CPU就會(huì)成為木桶的短板。

 

在問題服務(wù)器上運(yùn)行「top」命令可以很明顯看到「si」存在異樣,大部分軟中斷都集中在 1 號(hào)CPU上,其它的CPU完全使不上勁兒:

shell> top
Cpu0: 11.3%us,  4.7%sy,  0.0%ni, 82.5%id,  ...  0.8%si,  0.8%st
Cpu1: 21.3%us,  7.4%sy,  0.0%ni, 51.5%id,  ... 17.8%si,  2.0%st
Cpu2: 16.6%us,  4.5%sy,  0.0%ni, 77.7%id,  ...  0.8%si,  0.4%st
Cpu3: 15.9%us,  3.6%sy,  0.0%ni, 79.3%id,  ...  0.8%si,  0.4%st
Cpu4: 17.7%us,  4.9%sy,  0.0%ni, 75.3%id,  ...  1.2%si,  0.8%st
Cpu5: 23.6%us,  6.6%sy,  0.0%ni, 68.1%id,  ...  0.9%si,  0.9%st
Cpu6: 18.1%us,  4.9%sy,  0.0%ni, 75.7%id,  ...  0.4%si,  0.8%st
Cpu7: 21.1%us,  5.8%sy,  0.0%ni, 71.4%id,  ...  1.2%si,  0.4%st

查詢一下軟中斷相關(guān)數(shù)據(jù),發(fā)現(xiàn)主要集中在 NET_RX 上,猜測(cè)是網(wǎng)卡問題:

shell> watch -d -n 1 'cat /proc/softirqs'
                CPU0       CPU1       CPU2 ...       CPU7
      HI:          0          0          0 ...          0
   TIMER: 3692566284 3692960089 3692546970 ... 3693032995
  NET_TX:  130800410  652649368  154773818 ...  308945843
  NET_RX:  443627492 3802219918  792341500 ... 2546517156
   BLOCK:          0          0          0 ...          0
BLOCK_IOPOLL:      0          0          0 ...          0
 TASKLET:          0          0          0 ...          0
   SCHED: 1518716295  335629521 1520873304 ... 1444792018
 HRTIMER:        160       1351        131 ...        196
     RCU: 4201292019 3982761151 4184401659 ... 4039269755

補(bǔ)充:有一個(gè)查看中斷(Interrupt)的top風(fēng)格小工具 itop ,推薦試試。

確認(rèn)一下宿主機(jī)上的網(wǎng)卡信息,發(fā)現(xiàn)其運(yùn)行在單隊(duì)列模式下:

shell> grep -A 10 -i network /var/log/dmesg
Initalizing network drop monitor service
Intel(R) Gigabit Ethernet Network Driver - version 3.0.19
igb 0000:05:00.0: Intel(R) Gigabit Ethernet Network Connection
igb 0000:05:00.0: eth0: (PCIe:2.5GT/s:Width x4) 00:1b:21:bf:b3:2c
igb 0000:05:00.0: eth0: PBA No: G18758-002
igb 0000:05:00.0: Using MSI-X ... 1 rx queue(s), 1 tx queue(s)
igb 0000:05:00.1: Intel(R) Gigabit Ethernet Network Connection
igb 0000:05:00.1: eth1: (PCIe:2.5GT/s:Width x4) 00:1b:21:bf:b3:2d
igb 0000:05:00.1: eth1: PBA No: G18758-002
igb 0000:05:00.1: Using MSI-X ... 1 rx queue(s), 1 tx queue(s)

接著確認(rèn)一下網(wǎng)卡的中斷號(hào),因?yàn)槭菃侮?duì)列,所以只有一個(gè)中斷號(hào) 45:

shell> grep eth /proc/interrupts | awk '{print $1, $NF}'
45: eth0

知道了網(wǎng)卡的中斷號(hào),就可以查詢其中斷親緣性配置「smp_affinity」:

shell> cat /proc/irq/45/smp_affinity
02

這里的 02 實(shí)際上是十六進(jìn)制,表示 1 號(hào)CPU,計(jì)算方法如下(參考資料):

          Binary       Hex 
  CPU 0    0001         1 
  CPU 1    0010         2
  CPU 2    0100         4
+ CPU 3    1000         8
  -----------------------
  both     1111         f

說明:如果 4 個(gè)CPU都參與中斷處理,那么設(shè)為 f;同理 8 個(gè)CPU的就設(shè)置成 ff:

shell> echo ff > /proc/irq/45/smp_affinity

此外還有一個(gè)類似的配置「smp_affinity_list」:

shell> cat /proc/irq/45/smp_affinity_list
1

兩個(gè)配置是相通的,修改了一個(gè),另一個(gè)會(huì)跟著變。不過「smp_affinity_list」使用的是十進(jìn)制,相比較「smp_affinity」的十六進(jìn)制,可讀性更好些。

了解了這些基本知識(shí),我們可以嘗試換一個(gè)CPU試試看會(huì)發(fā)生什么:

echo 0 > /proc/irq/45/smp_affinity_list

再通過「top」命令觀察,會(huì)發(fā)現(xiàn)處理軟中斷的CPU變成了 0 號(hào)CPU。

說明:如果希望多個(gè)CPU參與中斷處理的話,可以使用類似下面的語(yǔ)法:

echo 3,5 > /proc/irq/45/smp_affinity_list
echo 0-7 > /proc/irq/45/smp_affinity_list

壞消息是對(duì)單隊(duì)列網(wǎng)卡而言,「smp_affinity」和「smp_affinity_list」配置多CPU無效。

好消息是Linux支持RPS,通俗點(diǎn)來說就是在軟件層面模擬實(shí)現(xiàn)硬件的多隊(duì)列網(wǎng)卡功能。

首先看看如何配置RPS,如果CPU個(gè)數(shù)是 8 個(gè)的話,可以設(shè)置成 ff:

shell> echo ff > /sys/class/net/eth0/queues/rx-0/rps_cpus

接著配置內(nèi)核參數(shù)rps_sock_flow_entries(官方文檔推薦設(shè)置: 32768):

shell> sysctl net.core.rps_sock_flow_entries=32768

***配置rps_flow_cnt,單隊(duì)列網(wǎng)卡的話設(shè)置成rps_sock_flow_entries即可:

echo 32768 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt

說明:如果是多隊(duì)列網(wǎng)卡,那么就按照隊(duì)列數(shù)量設(shè)置成 rps_sock_flow_entries / N 。

做了如上的優(yōu)化后,我們?cè)龠\(yùn)行「top」命令可以看到軟中斷已經(jīng)分散到了兩個(gè)CPU:

shell> top
Cpu0: 24.8%us,  9.7%sy,  0.0%ni, 52.2%id,  ... 11.5%si,  1.8%st
Cpu1:  8.8%us,  5.1%sy,  0.0%ni, 76.5%id,  ...  7.4%si,  2.2%st
Cpu2: 17.6%us,  5.1%sy,  0.0%ni, 75.7%id,  ...  0.7%si,  0.7%st
Cpu3: 11.9%us,  7.0%sy,  0.0%ni, 80.4%id,  ...  0.7%si,  0.0%st
Cpu4: 15.4%us,  6.6%sy,  0.0%ni, 75.7%id,  ...  1.5%si,  0.7%st
Cpu5: 20.6%us,  6.9%sy,  0.0%ni, 70.2%id,  ...  1.5%si,  0.8%st
Cpu6: 12.9%us,  5.7%sy,  0.0%ni, 80.0%id,  ...  0.7%si,  0.7%st
Cpu7: 15.9%us,  5.1%sy,  0.0%ni, 77.5%id,  ...  0.7%si,  0.7%st

疑問:理論上講,我已經(jīng)設(shè)置了RPS為ff,應(yīng)該所有 8 個(gè)CPU一起分擔(dān)軟中斷才對(duì),可實(shí)際結(jié)果只有兩個(gè),有知道原因的請(qǐng)賜教,但是不管怎么說,兩個(gè)總好過一個(gè)。

此外,因?yàn)檫@是一臺(tái)Nginx服務(wù)器,所以通過「worker_cpu_affinity」指令可以配置Nginx使用哪些CPU,如此一來我們便可以繞開高負(fù)載的CPU,對(duì)性能會(huì)有一些幫助。

補(bǔ)充:如果服務(wù)器是NUMA架構(gòu)的話,那么「numactl –cpubind」可能也會(huì)有用。

***,推薦看看香草總結(jié)的一些關(guān)于軟中斷方面的資料工具,很全面。

責(zé)任編輯:黃丹 來源: 火丁筆記
相關(guān)推薦

2023-08-27 18:30:44

系統(tǒng)inode

2019-04-29 14:23:46

Java服務(wù)器CPU

2009-01-09 23:01:24

2009-06-29 19:20:05

刀片服務(wù)器機(jī)架服務(wù)器

2011-07-28 09:54:44

服務(wù)器

2010-08-02 10:55:27

服務(wù)器制冷

2010-03-24 09:25:36

Nginx配置

2009-01-05 18:12:47

BalancePoin災(zāi)備虛擬化

2019-12-27 11:13:24

高并發(fā)服務(wù)器邏輯

2010-05-19 10:40:19

虛擬機(jī)備份

2017-08-03 10:36:08

UbuntuCertbotNGINX

2011-07-28 14:49:40

2009-11-13 16:01:53

思科路由器崩潰

2009-01-19 18:11:01

2012-09-05 11:09:15

SELinux操作系統(tǒng)

2009-02-27 16:53:00

服務(wù)器虛擬化虛擬化

2010-08-13 10:52:12

思科路由器崩潰

2010-07-29 09:47:22

2010-04-29 17:46:31

Oracle死鎖

2010-08-13 15:06:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: aaaa日韩| 国产精品久久久久一区二区三区 | 高清国产午夜精品久久久久久 | 亚洲成人一区二区在线 | 亚洲欧美日韩激情 | 精品一区二区在线观看 | 手机av网 | 欧美精品在线免费观看 | 色婷婷九月 | 国产精品久久久久久影院8一贰佰 | 日韩视频免费 | 9久9久9久女女女九九九一九 | 亚洲一区二区综合 | 欧美精品久久久久久久久久 | 亚洲精品一区二区三区 | 91精品久久久久久久久久入口 | 伊人春色在线 | 亚洲区一| 福利网址| 国产98色在线 | 日韩 | 色站综合 | 成人免费视频在线观看 | 97av视频在线观看 | 国产精品99久久久久久久vr | 国产精品一区二区三区四区 | 一区二区视频 | 日本不卡免费新一二三区 | 色偷偷人人澡人人爽人人模 | 日日夜夜狠狠操 | 美女视频久久 | 91色站 | 成人免费一级 | 久久久久亚洲精品中文字幕 | 国产亚洲精品美女久久久久久久久久 | 亚洲精品中文在线观看 | 日韩欧美在线观看视频网站 | h网站在线观看 | 欧美一级免费黄色片 | 午夜精品一区二区三区在线视频 | 久久av网站 | 欧美在线一区二区三区 |