2014-02-08 43 views
1

我已經使用這個網站多年了,但這是我第一次問一個問題,所以請隨時糾正我,如果我不做對了。未被捕獲的異常'MongoCursorException'與消息'localhost:27017:DBClientBase :: findN:傳輸錯誤

最近我們遇到了這個問題。 我們有mongos運行一個多臺Centos5服務器,連接到運行2.4.9的sharded replicaset mongodb服務器。

最近我們做了很多優化,增加了我們的吞吐量,雖然這個問題以前發生過很多,但現在變得無法忍受。

經過一定數量的成功讀取請求後,php只是出錯並且一遍又一遍地拋出相同的錯誤。一段時間後,它可以恢復。這似乎基於每個應用程序服務器,並且不會同時影響所有應用程序服務器。

如果我使用mongo並啓動一個新的mongos連接,這通常是固定的。 任何想法在哪些方向挖或可能指針表示讚賞,謝謝。 這是錯誤,我們得到:

Fatal error: Uncaught exception 'MongoCursorException' with message 'localhost:27017: DBClientBase::findN: transport error: internal-mongo-r1-d2-dev.myserver.com:27017 ns: admin.$cmd query: { setShardVersion: "", init: true, configdb: "internal-mongo-c1-dev.myserver.com:27019,internal-mongo-c2-dev.myserver.com:27019,internal-mongo-c3-dev.myserver.com:27019", serverID: ObjectId('52f57ce26ca6543144b077e5'), authoritative: true }' in /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/mongo/mongo.inc:185 
Stack trace: 
#0 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/mongo/mongo.inc(185): MongoCursor->rewind() 
#1 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/data.inc(62): MongoCG::get(Array) 
#2 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/data/session/savedsession.inc(30): Data::select('mongo', 'coll_saved_sess...', '_id', 'updated_ss', Array, Array) 
#3 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/data/session/savedsession.inc(20): SavedSession::select(Array) 
#4 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/access/phpsession.inc(32): SavedSession::get_one('fl0uq0nqjbbo4iq...') 
#5 [internal function]: PhpSession::read('fl0uq0nqjbbo4iq...') 
#6 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/access/phpsession.inc(16): session_start() 
#7 /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/allinc.inc(15): PhpSession::start() 
#8 /mnt/home/webapps/cgs-sys/releases/20140207163554/p.php(4): include_once('/mnt/home/webap...') 
#9 {main} 
    thrown in /mnt/home/webapps/cgs-sys/releases/20140207163554/includes/db/mongo/mongo.inc on line 185 
+0

發生這種情況時,您的系統負載是什麼樣的?看來你正在做一個試圖提交的拆分或遷移,並且它很長一段時間都是阻塞的。如果再次發生這種情況,請查看CPU和磁盤I/O使用情況,運行db.currentOp(),查看是否可以找到堆積或停頓的地方(然後在此處使用該數據更新)。 – leif

+0

好吧,這發生在負載下,CPU通常在這段時間內運行得很高,但是發生這種情況的代碼所在的地方是我試圖從數據庫中讀取的地方,我一直試圖解決這個問題現在好幾個小時,將很快發佈更新,感謝您的期待 –

回答

1

只想做一個快速跟進。

深入挖掘後發現我們在mongod服務器上的「打開文件」設置較低,並且這些錯誤消失了。

相關問題