作者查詢 / FireLake

總覽項目: 發文 | 留言 | 暱稱
作者 FireLake 在 PTT [ Linux ] 看板的留言(推文), 共42則
限定看板:Linux
首頁
上一頁
1
下一頁
尾頁
[問題] Socket IO 不正常
[ Linux ]44 留言, 推噓總分: +1
作者: wjyaries - 發表於 2011/09/15 13:57(14年前)
9FFireLake:select()傳回EBADF, 有可能是在之前的 recvfrom() 有09/15 15:21
10FFireLake:ECONNRESET, 檢查一下recvfrom()是否回傳錯誤09/15 15:23
12FFireLake:這處的recvfrom()是整個程式惟一讀取(或send) updSd 的地09/16 11:44
13FFireLake:方嗎? 若不是的話, 檢查之前send或recv是否有錯誤09/16 11:45
14FFireLake:若這段程式是在迴圈內, 檢查 cnt<=0 的情況09/16 11:53
17FFireLake:你好像弄錯意思了, 這是迴圈裡唯一在處理這個udpSd的地方09/17 08:52
18FFireLake:但是不是總是第一次執行到此處的recvfrom()就被block呢?09/17 08:52
19FFireLake:如果不是的話, 要檢查迴圈之前執行到這個recvfrom()是否09/17 08:53
20FFireLake:有錯誤. 如果總是第一次就被block, 要先確認udpSd是真的09/17 08:54
21FFireLake:正確的initialized, 是真的可以用的socket. 若是你確認後09/17 08:55
22FFireLake:者的方式是把它改成nonblocked, 還是要檢查 recvfrom()是09/17 08:55
23FFireLake:否有傳回錯誤, 有的話可以幫你找到問題所在09/17 08:56
33FFireLake:若是在第4~5次才開始卡, 就要檢查前面每一次的recvfrom()09/18 16:16
34FFireLake:時有沒有錯誤, 也就是檢查 cnt<=0 的情況09/18 16:17
35FFireLake:還有不同的thread會有可能接收同一個updSd嗎? 有的話也會09/18 16:24
36FFireLake:造成block的情形 (但不會造成select有EBADF)09/18 16:25
39FFireLake:出現EBADF和 recvfrom卡住時, 不一定是這方的程式誤關掉09/20 14:25
40FFireLake:socket, 也有可能是遠端關掉此socket. 檢查 "每一次" 的09/20 14:26
41FFireLake:select()和recvfrom() 有沒有錯誤, 尤其是在出現 EBADF09/20 14:27
42FFireLake:和recvfrom卡住之前的那幾次select和recvfrom09/20 14:27
44FFireLake:之前的recvfrom()呢?09/21 10:13
[問題] 使用超過 65535 個port
[ Linux ]29 留言, 推噓總分: +1
作者: FireLake - 發表於 2011/09/02 11:51(14年前)
4FFireLake:剛好試完IP alias回來 發現IP alias似乎不可行 即使IP不09/02 14:17
5FFireLake:同 bind同一個port時還是不行 server效能倒是不用擔心 之09/02 14:17
6FFireLake:前模擬過約60萬個connections 可以跑得動 使用UDP受到另09/02 14:19
7FFireLake:一端的限制 沒辦法改 接下來準備要試看看實際再裝一個NIC09/02 14:20
8FFireLake:若不行只好試IPV609/02 14:21
10FFireLake:我是說模擬的 尚未真的試 這台server算是蠻powerful的09/02 14:57
11FFireLake:2TB memory, 8-socket Westmere EX, 32TB SSD09/02 14:58
14FFireLake:我是說模擬的 尚未真的試 如果真的試過的話 我就不會在煩09/02 15:06
15FFireLake:惱65535的限制了09/02 15:06
18FFireLake:這倒是確認過了 IP的確是IP alias設的不同IP 但不能bind09/02 15:24
19FFireLake:到同個port number09/02 15:24
21FFireLake:當然09/03 00:04
23FFireLake:找到問題的所在了 是2.6.38 mainline kernel的一個bug 在09/03 11:31
24FFireLake:大型server且使用大量memory和cpu下 某些極端的情況下會09/03 11:33
25FFireLake:IP alias設的不同IP無法bind同一個port 後來移到09/03 11:36
26FFireLake:2.6.39 rc 後 就沒有這問題 可以使用超過 65535 個09/03 11:37
27FFireLake:connections 這算是使用mainline或是rc版本的缺點之一 之09/03 11:39
28FFireLake:前才file一個SCSI layer的bug在2.6.38 對大型server的09/03 11:42
29FFireLake:IO效率可影響一倍以上09/03 11:43
[問題] 從伺服器端下載檔案到本機端
[ Linux ]10 留言, 推噓總分: +3
作者: Holocaust123 - 發表於 2011/07/03 10:59(14年前)
2FFireLake:打你自已機器的hostname或ip 若想少打一些字 就用個alias07/03 16:31
3FFireLake:或 shell script等07/03 16:31
首頁
上一頁
1
下一頁
尾頁