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