linux超时时间设置(linux超时时间)
linux socket默認超時時間?
舉例: s=socket(); 設(shè)置s為non-blocking; connect(s,..); FD_SET...; rc = select(..., 10s); if (rc == 0) 表示10s超時了。 這個超時的意思是:10s之內(nèi),select中所有socket的事件均未產(chǎn)生(如果至少有一個產(chǎn)生,則rc大于0) 注意:這個10s跟connect本身的超時機制完全無關(guān),前者的設(shè)置不影響后者。
10s后select的返回,表明10s內(nèi)connect還沒成功,connect可能還在按自己的超時機制(例如慢啟動)嘗試重連(當(dāng)然它最終也有個超時)。
至于connect本身的超時是否可以設(shè)置,可能各系統(tǒng)不一樣。 順便提醒:connect的socket必須是non-blocking類型,否則,connect會阻塞,也就沒必要用select來檢測是否連接成功。
另外,那個s要注冊到write類型的fd中,即select的第3個參數(shù)中。
其他listen,recv什么的,完全類似(但listen,recv本身沒有什么超時概念)。
只不過listen的和recv的socket,要注冊到read的fd中。
如何修改linux tcp established老化時間?
1、修改linux系統(tǒng)下的tcp_retries2為1,當(dāng)socket發(fā)送隊列有一定數(shù)據(jù)時,突然切斷網(wǎng)線,造成異常斷鏈的場景,此時,大約過了1秒,用netstat觀察established的連接消失;
2、繼續(xù)把該參數(shù)修改為15,重復(fù)上面的實驗,發(fā)現(xiàn)大約過了15分鐘后,established的連接才斷開;
3、把參數(shù)再次修改為5,大約過了7秒,連接消失
/proc/sys/net/ipv4/tcp_retries2
思考:TCP的超時后,重傳的次數(shù)和重傳的時間間隔是影響連接斷開的主要參數(shù)。但是,從上面的實驗數(shù)據(jù)來看,似乎沒有什么規(guī)律。查閱linux幫助文檔,發(fā)現(xiàn)這個重傳的時間間隔與RTO有關(guān),而這個參數(shù)又是協(xié)議棧通過檢測網(wǎng)絡(luò)狀況而實時改變的。
linux看門狗超時系統(tǒng)不斷重啟?
那是你的內(nèi)核有問題。
換個版本把。如果是你自己裁剪的內(nèi)核,看看是不是沒有喂狗。或者粗暴點直接禁用看門狗。
總結(jié)
以上是生活随笔為你收集整理的linux超时时间设置(linux超时时间)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ejb 2.1 jboss_JBoss
- 下一篇: 微信安卓手机版下载安装(微信安卓手机版下