分享到:文章主題: 一個epollset 用幾個線程操作效率最高
water4樓主
water4
身份
用戶
文章
2953
星座
天蝎座
積分
41885
等級
沉香(10)

發信人: water4 (water4), 信區: CPlusPlus
標  題: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Fri Nov  1 18:03:50 2019), 站內
  
  
--
  
※ 來源:·水木社區 http://www.yqykp.club·[FROM: 115.34.130.*]

返回頂部
fatalme第1樓
火葉
身份
用戶
文章
2108
星座
天秤座
積分
61574
等級
椽桷(13)

發信人: fatalme (火葉), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Sat Nov  2 02:35:47 2019), 站內
  
兩倍的cpu core個數
【 在 water4 的大作中提到: 】
  
--
  
※ 來源:·水木社區 http://www.yqykp.club·[FROM: 131.107.174.*]

返回頂部
telangpujing第2樓
telangpujing
身份
用戶
文章
888
星座
未知
積分
21784
等級
靈樨(8)

發信人: telangpujing (telangpujing), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Sat Nov  2 09:41:00 2019), 站內
  
哦,那就是分配n個epset,每個epset分配n個線程,多謝了
  
【 在 water4 的大作中提到: 】
  
--
  
※ 來源:·水木社區 http://www.yqykp.club·[FROM: 36.17.32.*]

返回頂部
lambdai第3樓
lambdai
身份
用戶
文章
62
星座
未知
積分
4885
等級
喬木(5)

發信人: lambdai (lambdai), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Sat Nov  2 10:44:23 2019), 站內
  
不是吧?還是一個epollset只背一個thread操作比較好吧。可以起多于core數量的thread。
多個thread處理同一個epollset太容易出問題了
【 在 telangpujing 的大作中提到: 】
: 哦,那就是分配n個epset,每個epset分配n個線程,多謝了
:  
: 【 在 water4 的大作中提到: 】
  
- 來自「最水木 for iPhone 6s」
--
  
※ 來源:·最水木 客戶端·[FROM: 75.31.75.*]

返回頂部
eematlab第4樓
未辰
身份
用戶
文章
6737
星座
天蝎座
積分
63083
等級
椽桷(13)

發信人: eematlab (未辰), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Sat Nov  2 10:52:10 2019), 站內
  
epoll在設計的時候對多線程考慮不足, 一個thread還是操作一個epoll或多個epoll好
  
多個thread操作一個epoll容易出問題
  
推薦一篇你看一下這篇
https://medium.com/@copyconstruct/the-method-to-epolls-madness-d9d2d6378642
  
  
【 在 lambdai (lambdai) 的大作中提到: 】
: 不是吧?還是一個epollset只背一個thread操作比較好吧。可以起多于core數量的thread。
: 多個thread處理同一個epollset太容易出問題了
: - 來自「最水木 for iPhone 6s」
  
--
  
※ 來源:·水木社區 http://newsmth.net·[FROM: 101.86.20.*]

返回頂部
dedeLotus第5樓
dede
身份
用戶
文章
937
積分
63802
等級
楠木(12)

發信人: dedeLotus (dede), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Sun Nov  3 00:01:04 2019), 站內
  
說多線程開發難度高倒還好說,怎么就扯到epoll對多線程考慮不足了
是有哪個接口沒做到線程安全嗎
  
【 在 eematlab (未辰) 的大作中提到: 】
: epoll在設計的時候對多線程考慮不足, 一個thread還是操作一個epoll或多個epoll好
: 多個thread操作一個epoll容易出問題
: 推薦一篇你看一下這篇
: ...................
  
--
  
※ 來源:·水木社區 newsmth.net·[FROM: 123.118.111.*]

返回頂部
ylh1969第6樓
沒譜
身份
用戶
文章
11469
星座
未知
積分
23096
等級
白楊(6)

發信人: ylh1969 (沒譜), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Sun Nov  3 18:48:40 2019), 站內
  
【 在 fatalme 的大作中提到: 】
: 兩倍的cpu core個數
不是這么算的。
  
一個set,喚醒時間是3~7微秒,與線程數無關。
這也就限制了每個set大約150000QPS的能力。當這個滿足不了需要,就必須增加set,
兩個set30W,10個set150w.就這樣計算。
  
你需要把請求均勻分布到N個set里去。
  
所有set的伺服線程總數在core數的2倍,效率較好。如果不能保證分配均勻,可以適當增加線程數。
--
※ 修改:·ylh1969 于 Nov  3 18:57:00 2019 修改本文·[FROM: 111.196.91.*]
※ 來源:·水木社區 http://www.yqykp.club·[FROM: 111.196.91.*]

返回頂部
fatalme第7樓
火葉
身份
用戶
文章
2108
星座
天秤座
積分
61574
等級
椽桷(13)

發信人: fatalme (火葉), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Mon Nov  4 14:33:55 2019), 站內
  
IO模型不對,用event based的aio試試。
【 在 ylh1969 的大作中提到: 】
: 不是這么算的。
: 一個set,喚醒時間是3~7微秒,與線程數無關。
: 這也就限制了每個set大約150000QPS的能力。當這個滿足不了需要,就必須增加set,
: ...................
  
--
  
※ 來源:·水木社區 http://www.yqykp.club·[FROM: 76.121.9.*]

返回頂部
ylh1969第8樓
沒譜
身份
用戶
文章
11469
星座
未知
積分
23096
等級
白楊(6)

發信人: ylh1969 (沒譜), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Mon Nov  4 15:51:51 2019), 站內
  
【 在 fatalme 的大作中提到: 】
: IO模型不對,用event based的aio試試。
這里說的epoll啊,還有啥模型?
epoll每個set的極限處理能力就是150000QPS左右。與線程數無關。
如果你想處理1000000QPS,要用10個set。麻煩的是怎樣把請求均攤到10個set里。
  
int epoll_fd[10];
--
※ 修改:·ylh1969 于 Nov  4 15:58:21 2019 修改本文·[FROM: 111.196.91.*]
※ 來源:·水木社區 http://www.yqykp.club·[FROM: 111.196.91.*]

返回頂部
ylh1969第9樓
沒譜
身份
用戶
文章
11469
星座
未知
積分
23096
等級
白楊(6)

發信人: ylh1969 (沒譜), 信區: CPlusPlus
標  題: Re: 一個epollset 用幾個線程操作效率最高
發信站: 水木社區 (Mon Nov  4 16:04:07 2019), 站內
  
【 在 fatalme 的大作中提到: 】
: IO模型不對,用event based的aio試試。
libaio+eventfd,用過。結合起來可以模仿IOCP。
但是QPS能力不變。
如果epoll_wait時處理多個events,則可能提高QPS數,但是一個線程處理許多events,一些events就需要等待,孰輕孰重需要一個權衡。
--
※ 修改:·ylh1969 于 Nov  4 16:23:49 2019 修改本文·[FROM: 111.196.91.*]
※ 來源:·水木社區 http://www.yqykp.club·[FROM: 111.196.91.*]

返回頂部
  • 文章數:12 分頁:
    1. 1
    2. 2
    3. >>
魔兽世界3.35