【問題處理】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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 9I RAC IPC Send timeout detected問題處理Oracle
- IPC Send timeout detected
- IPC Send timeout detected. Receiver ospid 25822
- IPC Send timeout故障現象
- 如何診斷RAC資料庫上的“IPC Send timeout”問題?資料庫
- 【RAC】如何診斷RAC資料庫上的“IPC Send timeout”問題資料庫
- IPC send completion sync
- 【ASK_ORACLE】Oracle RAC報錯“ipc send timeout”的原因以及解決辦法Oracle
- SQLNET.RECV_TIMEOUT & SQLNET.SEND_TIMEOUTSQL
- Switch to short timeout for ipc polling
- 排查 “Detected Tx Unit Hang”問題
- 【故障-ORACLE】rdbms ipc message timeout解釋Oracle
- 處理問題的方法
- perl中文處理問題
- 漢字處理問題?
- xml處理的問題XML
- 貨品問題處理
- [git] git問題處理Git
- go 語言 proxy.golang.org timeout 無法訪問 處理方法Golang
- golang json處理問題GolangJSON
- 併發問題處理方式
- ASMCMD處理問題一則ASM
- mysql的處理能力問題MySql
- RMAN處理split block問題BloC
- mysql問題處理兩則MySql
- Oracle啟動問題處理Oracle
- mysql 問題處理二則MySql
- Oracle壞塊問題處理Oracle
- 資料處理--pandas問題
- redis connect timeout問題排查Redis
- 如何處理 No DMARC Record Found 問題
- PHP 開發版本問題處理PHP
- MySQL:亂碼問題處理流程MySql
- JVM問題分析處理手冊JVM
- Linux 問題處理集錦Linux
- 處理SQLServer errorlog滿問題SQLServerError
- 如何處理HTTP 503故障問題?HTTP
- gc buffer busy acquire問題處理GCUI