亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3282 | 回復(fù): 13
打印 上一主題 下一主題

[網(wǎng)絡(luò)子系統(tǒng)] 網(wǎng)絡(luò)問題,發(fā)到內(nèi)核板看看 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-01-30 16:19 |只看該作者 |倒序瀏覽
# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
....
tcp        0 13481742 192.168.88.191:555      218.xxx.xxx.79:59018     ESTABLISHED
.......

從上面看出緩存的數(shù)據(jù)約13M, 我該如何做讓這個值在2M左右之后不再增大?
即讓send 發(fā)送失敗.

我調(diào)用下面函數(shù)設(shè)置成功了,但是仍然會出現(xiàn)上述情況
int sock_sendbuffsize(int fd, int buffsize)
{
    int bs = buffsize;
    socklen_t sz = sizeof(bs);
    if(-1 == setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&bs, sizeof(int)))
    {
        perr("setsockopt");
        return -1;
    }
    return 1;
}

我該如何做,請高手指點下,謝謝

論壇徽章:
6
金牛座
日期:2013-10-08 10:19:10技術(shù)圖書徽章
日期:2013-10-14 16:24:09CU十二周年紀念徽章
日期:2013-10-24 15:41:34獅子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亞洲杯之阿聯(lián)酋
日期:2015-05-09 14:36:15
2 [報告]
發(fā)表于 2013-01-30 19:12 |只看該作者
回復(fù) 1# pppStar
# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
....
tcp        0 13481742 192.168.88.191:555      218.xxx.xxx.79:59018     ESTABLISHED
.......

從上面看出緩存的數(shù)據(jù)約13M, 我該如何做讓這個值在2M左右之后不再增大?
即讓send 發(fā)送失敗.

我調(diào)用下面函數(shù)設(shè)置成功了,但是仍然會出現(xiàn)上述情況
int sock_sendbuffsize(int fd, int buffsize)
{
    int bs = buffsize;
    socklen_t sz = sizeof(bs);
    if(-1 == setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&bs, sizeof(int)))
    {
        perr("setsockopt";
        return -1;
    }
    return 1;
}


來內(nèi)核版問就對了

你需要明白一個事實:
         setsockopt的SO_SNDBUF與netstat顯示的Send-Q含義,前者表示可用于發(fā)送的隊列的長度,后者表示的是內(nèi)核已經(jīng)發(fā)送但是還沒有得到對端ack的數(shù)據(jù)包的總長度,這兩者沒有直接的關(guān)系。
         比如SO_SNDBUF是100,向?qū)Χ税l(fā)送數(shù)據(jù)包,對端內(nèi)核會對ack應(yīng)答,這個時候數(shù)據(jù)包在對端的Recv-Q中,不再本地的SNDBUF中也不再Send-Q中,如果對端的接收隊列滿了,那么可能會慢慢的累積本段的Send-Q,但是SO_SNDBUF仍然沒有滿。

   

論壇徽章:
36
IT運維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
3 [報告]
發(fā)表于 2013-01-30 20:34 |只看該作者
本帖最后由 Godbach 于 2013-01-30 20:36 編輯

回復(fù) 1# pppStar
暈,LZ 的頭像和 send_linux 一樣,我都認錯了


   

論壇徽章:
4
酉雞
日期:2014-03-21 23:19:50獅子座
日期:2014-08-01 22:11:40酉雞
日期:2015-01-10 21:31:442015年辭舊歲徽章
日期:2015-03-03 16:54:15
4 [報告]
發(fā)表于 2013-01-30 20:59 |只看該作者
嗯...是對端接收太慢的問題

論壇徽章:
0
5 [報告]
發(fā)表于 2013-01-31 09:06 |只看該作者
回復(fù) 2# 瀚海書香


    我認為SO_SNDBUF的大小應(yīng)該是Send-Q最大值,問題是設(shè)置了沒有起效果

   某次測試的情況
   setsockopt(3, SOL_SOCKET, SO_RCVBUF, [1000000], 4) = 0
   getsockopt(3, SOL_SOCKET, SO_RCVBUF, [225280], [4]) = 0
  write(1, "modified receive buffer size = 2"..., 38modified receive buffer size = 225280
   ) = 38
  setsockopt(3, SOL_SOCKET, SO_SNDBUF, [1000000], 4) = 0
  getsockopt(3, SOL_SOCKET, SO_SNDBUF, [225280], [4]) = 0
  write(1, "modified snd buffer size = 22528"..., 34modified snd buffer size = 225280
  ) = 34

  謝謝版主,謝謝各位

我頭像抄的, 我看版主的頭像還像是linuxsir里面的人呢,

論壇徽章:
6
金牛座
日期:2013-10-08 10:19:10技術(shù)圖書徽章
日期:2013-10-14 16:24:09CU十二周年紀念徽章
日期:2013-10-24 15:41:34獅子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亞洲杯之阿聯(lián)酋
日期:2015-05-09 14:36:15
6 [報告]
發(fā)表于 2013-01-31 09:11 |只看該作者
回復(fù) 5# pppStar
我認為SO_SNDBUF的大小應(yīng)該是Send-Q最大值,問題是設(shè)置了沒有起效果

已經(jīng)跟你說了,這兩個參數(shù)沒有直接的關(guān)系啊。假如你給pc換個內(nèi)存條,cpu的頻率會變嗎?
   

論壇徽章:
0
7 [報告]
發(fā)表于 2013-01-31 09:34 |只看該作者
嗯,謝謝

核心問題還沒解決,
請教下如何防止在對方接收慢的時候讓Send-Q不至于過大以至于耗盡內(nèi)存的情況出現(xiàn)呢?
當(dāng)然也要同時滿足對方接收快的時候(如局域網(wǎng))有足夠的性能

論壇徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16賽季CBA聯(lián)賽之廣東
日期:2018-02-05 11:22:1215-16賽季CBA聯(lián)賽之八一
日期:2016-07-04 12:26:1815-16賽季CBA聯(lián)賽之青島
日期:2016-06-08 11:15:4115-16賽季CBA聯(lián)賽之遼寧
日期:2016-04-05 10:10:1415-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-11 11:11:48酉雞
日期:2014-12-18 14:35:48獅子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16賽季CBA聯(lián)賽之廣夏
日期:2018-03-21 08:51:10
8 [報告]
發(fā)表于 2013-01-31 10:12 |只看該作者
本帖最后由 daniel_11 于 2013-01-31 10:17 編輯

暈,還沒遇到這種問題。。。
不過根據(jù)描述:
Send-Q
The count of bytes not acknowledged by the remote host.
是否可以調(diào)整tcp timeout 時間?我的意思要從tcp協(xié)議入手?

話說我頭像太挫了。。。

論壇徽章:
6
金牛座
日期:2013-10-08 10:19:10技術(shù)圖書徽章
日期:2013-10-14 16:24:09CU十二周年紀念徽章
日期:2013-10-24 15:41:34獅子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亞洲杯之阿聯(lián)酋
日期:2015-05-09 14:36:15
9 [報告]
發(fā)表于 2013-01-31 10:58 |只看該作者
回復(fù) 8# daniel_11
其實這種問題在tcp層來解決,個人認為不妥。本身這個問題是應(yīng)用層之間協(xié)商的問題,非要讓底層解決,肯定會費力的。

在應(yīng)用層實現(xiàn)一個應(yīng)用層的簡單協(xié)商就可以完美解決了啊。

   

論壇徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16賽季CBA聯(lián)賽之廣東
日期:2018-02-05 11:22:1215-16賽季CBA聯(lián)賽之八一
日期:2016-07-04 12:26:1815-16賽季CBA聯(lián)賽之青島
日期:2016-06-08 11:15:4115-16賽季CBA聯(lián)賽之遼寧
日期:2016-04-05 10:10:1415-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-11 11:11:48酉雞
日期:2014-12-18 14:35:48獅子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16賽季CBA聯(lián)賽之廣夏
日期:2018-03-21 08:51:10
10 [報告]
發(fā)表于 2013-01-31 11:09 |只看該作者
回復(fù) 9# 瀚海書香
嗯,確實如此。
BTW, tcp有keepalive的option,沒用過不知如何?


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP