mongod mogok tanpa login

Saya menggunakan mongodb v2.2.2 di server tunggal (Ubuntu 12.04).

Itu macet tanpa masuk ke /var/log/mongodb/mongodb.log. Tampaknya macet saat pencatatan. (Karakter terputus. Dan, log ini adalah log kueri normal.)

Dan, saya memeriksa syslog tentang masalah memori (misalnya, killed proccess), tetapi tidak dapat menemukannya.

Kemudian, saya menemukan kesalahan berikut pada mongo-Shell (perintah db.printCollectionStats()).

DLLConnectionResultData { "ns" : "UserData.DLLConnectionResultData", "count" : 8215398, "size" : 4831306500, "avgObjSize" : 588.0794211065611, "errmsg" : "pengecualian: pernyataan src/mongo/db/database.cpp:300" , "kode" : 0, "oke" : 0 }

Bagaimana cara mengatasi masalah?

Terima kasih,


person user3242587    schedule 28.01.2014    source sumber
comment
sepertinya ada kesalahan memori. Apakah mongod versi 32 bit atau 64 bit?   -  person arunb2w    schedule 28.01.2014
comment
Terima kasih atas komentarnya. Saya menggunakan mongod versi 64bit.   -  person user3242587    schedule 28.01.2014
comment
bisakah Anda memeriksa apakah Anda dapat menemukan kesalahan apa pun di log server? Dan jika Anda mengaktifkan penjurnalan, harap nonaktifkan dan coba   -  person arunb2w    schedule 28.01.2014
comment
Terima kasih arunb2w. Saya memeriksa tidak hanya mongodb.log dan syslog tetapi juga kern.log,dmesg.Tetapi, tidak dapat menemukan kesalahan apa pun pada keduanya. Sayangnya, saya menyetel level log ke 1 pada saat itu. Apakah Journaling terkait dengan masalah ini atau masalah lainnya? (Saya menggunakan Jurnal kapan saja.)   -  person user3242587    schedule 30.01.2014


Jawaban (1)


Saya memeriksa baris itu di kode sumber untuk 2.2.2 (lihat di sini untuk referensi). Kesalahan tersebut secara khusus terkait dengan penerapan kuota di MongoDB. Anda belum menyebutkan penerapan kuota di sini atau berapa batas file yang telah Anda tetapkan (standarnya adalah 8) tetapi Anda mungkin mengalami batas tersebut di sini.

Pertama, saya akan merekomendasikan untuk menggunakan versi 2.2 yang lebih baru (dan pada akhirnya meningkatkan ke 2.4, tetapi yang pasti adalah 2.2.7+ pada awalnya). Jika Anda menggunakan kuota, perbaikan ini yang masuk ke versi 2.2.5 akan mencatat pesan yang melebihi kuota (sebelumnya login hanya pada log level 1, defaultnya adalah log level 0). Oleh karena itu, jika penyebabnya adalah pelanggaran kuota, Anda mungkin mendapat peringatan dini.

Jika itu penyebab utamanya, Anda punya beberapa pilihan:

  1. Setelah memutakhirkan ke versi terbaru 2.2, jika masalah terjadi berulang kali, ajukan laporan bug untuk kerusakan pada 2.2
  2. Tingkatkan ke 2.4, verifikasi bahwa masalah masih terjadi, dan laporkan bug (atau tambahkan ke laporan di atas untuk 2.2)

Apa pun kasusnya, mematikan kuota untuk sementara akan menjadi cara yang tepat untuk mencegah kerusakan tersebut.

person Adam Comerford    schedule 28.01.2014
comment
Terima kasih sudah menjawab Adam C. Saya tidak menggunakan batasan kuota. Saya sedang memeriksa kuota/alokasi sekarang. - person user3242587; 30.01.2014