【問題處理】IPC Send timeout detected
故障說明
昨天有一套生產RAC 的一個節點的資料庫例項自動當機,然後又很快自動恢復正常狀態。隨即依次檢查了一下資料庫 alert 日誌, ASM alert 日誌和叢集 alert 日誌。發現 ASM alert 日誌和叢集 alert 日誌中在當機的時間點並沒有重要特殊的資訊提供。而在資料庫 alert 日誌中發現了以下資訊:
IPC Send timeout detected. Receiver ospid 31266 [
Sun Jan 24 06:07:59 2021
Errors in file /u01/app/oracle/diag/rdbms/racdb/racdb3/trace/racdb3_lmon_31266.trc:
Sun Jan 24 06:08:48 2021
Detected an inconsistent instance membership by instance 4
Sun Jan 24 06:08:48 2021
Sun Jan 24 06:08:48 2021
Received an instance abort message from instance 4Received an instance abort message from instance 4
Please check instance 4 alert and LMON trace files for detail.
Please check instance 4 alert and LMON trace files for detail.
LMS0 (ospid: 31270): terminating the instance due to error 481
Sun Jan 24 06:08:48 2021
System state dump requested by (instance=3, osid=31270 (LMS0)), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/racdb/racdb3/trace/racdb3_diag_31256_20210124060848.trc
Instance terminated by LMS0, pid = 31270
Sun Jan 24 06:09:00 2021
Starting ORACLE instance (normal)
根據資料庫 alert 日誌提供的資訊,可以得知,此時發生了 IPC 超時檢測,並將本地資料庫例項驅逐出叢集,然後本地資料庫例項又正常啟動了。
當 IPC Send timeout detected 發生時, "netstat" 狀態會顯示 "packet reassembles failed" (重組包失敗),檢查如下:
$ cd /oracle/app/grid/tfa/repository/suptools/x38503/oswbb/grid/archive/oswnetstat/
檢查是否有很多 "packet reassembles failed" 現象
$ grep -ni 'packet reassembles failed' x38503_netstat_21.01.24.0600.dat
3283: 2671396 packet reassembles failed
3438: 2672065 packet reassembles failed
3593: 2672586 packet reassembles failed
3748: 2673032 packet reassembles failed
3903: 2673516 packet reassembles failed
4058: 2674057 packet reassembles failed
4213: 2674852 packet reassembles failed
4368: 2675658 packet reassembles failed
4523: 2675980 packet reassembles failed
4678: 2676232 packet reassembles failed
.........
8708: 2680307 packet reassembles failed
8863: 2680666 packet reassembles failed
大量的 "packet reassembles failed" 可能會導致兩種現象
1. 節點驅逐
2. 在發生節點驅逐後,如果沒有重啟產生 "packet reassembles failed" 的節點,例項或節點將不會自動加入叢集
解決方法
根據MTU ( Maximum Transmission Unit )的尺寸,大的 UDP 資料包可能被分片,並在多個幀中傳送。這些零散的資料包需要在接收節點上重新組合。高 CPU 使用率(持續的或者是頻繁的峰值),過小的 reassembly buffer 也會導致塊重組失敗。在接收節點 ' netstat -s ' 輸出的 "IP Statistics" 部分提示有大量 的 "reassembles failed" 資訊。分片的報文需要在指定時間內完成重組( reassemble )。沒有能夠完成重組的分片報文會被丟棄並要求重傳。已經收到,但是由於空間不足沒有進行重組的資料分片會被直接丟棄。
解決方法如下, 增加reassemble buffer 尺寸,給重組分配更多的空間。方法如下:
# vi /etc/sysctl.conf
net.ipv4.ipfrag_high_thresh = 16777216 (default = 196608)
net.ipv4.ipfrag_low_thresh = 15728640 (default = 262144)
# sysctl -p -- 使引數生效
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2753522/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【ASK_ORACLE】Oracle RAC報錯“ipc send timeout”的原因以及解決辦法Oracle
- Switch to short timeout for ipc polling
- redis connect timeout問題排查Redis
- go 語言 proxy.golang.org timeout 無法訪問 處理方法Golang
- golang json處理問題GolangJSON
- [git] git問題處理Git
- JQ AJAX 超時問題 timeout
- 併發問題處理方式
- Linux 問題處理集錦Linux
- 處理SQLServer errorlog滿問題SQLServerError
- 資料處理--pandas問題
- Ubuntu處理依賴問題Ubuntu
- 02.Android之IPC機制問題Android
- PHP 開發版本問題處理PHP
- 【故障處理】TNS-04610問題
- JVM問題分析處理手冊JVM
- gc buffer busy acquire問題處理GCUI
- oracle SP2-問題處理Oracle
- 記憶體分配問題處理記憶體
- 如何處理 No DMARC Record Found 問題
- 如何處理HTTP 503故障問題?HTTP
- MySQL:亂碼問題處理流程MySql
- 【問題處理】MySQL忘記root密碼的處理辦法MySql密碼
- 二、Git 問題彙總及處理Git
- Redis 快取常見問題處理Redis快取
- Oracle日常問題處理ORA-04031Oracle
- .net異常處理的效能問題
- ORACLE問題處理十個指令碼Oracle指令碼
- repmgr 叢集雙主問題處理
- SpringBoot 2.6.7 處理跨域的問題Spring Boot跨域
- RAC磁碟頭損壞問題處理
- SpringBoot 2.7.0 處理跨域的問題Spring Boot跨域
- 問題:mybatis like 佔位符處理MyBatis
- options 請求跨域問題處理跨域
- MySQL:網路斷開後執行的事務怎麼處理(read_timeout/write_timeout))MySql
- 【Weblogic】java.lang.UnsupportedClassVersionError問題處理方案WebJavaError
- 三、實戰系列問題處理集中營
- 瀏覽器相容問題處理總結瀏覽器