我正在使用socket io和mongo db的nodejs webservice。
我目前正处于测试阶段,我正在测试发送数千条带有数千个套接字io连接的消息,导致mongo崩溃。崩溃的错误如下:
mongod(_ZN5mongo15printStackTraceERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE+0x39) [0x10cbde939]
mongod(_ZN5mongo10logContextEPKc+0x100) [0x10cb92c80]
mongod(_ZN5mongo15invariantFailedEPKcS1_j+0x183) [0x10cb7ff53]
mongod(_ZN5mongo3dur13JournalWriter20_journalWriterThreadEv+0x8FC) [0x10c9ba2ac]
mongod(_ZN5boost12_GLOBAL__N_112thread_proxyEPv+0xB1) [0x10cc121b1]
libsystem_pthread.dylib(_pthread_body+0x8A) [0x7fff88c40899]
libsystem_pthread.dylib(_pthread_struct_init+0x0) [0x7fff88c4072a]
libsystem_pthread.dylib(thread_start+0xD) [0x7fff88c44fc9]
----- END BACKTRACE -----
2015-09-29T16:29:54.206+0100 I - [journal writer]
***aborting after invariant() failure
在任何给定时间我只有3个与数据库的连接。所以我不认为这是一个连接超载问题。
我注意到mongo在很多请求加载时崩溃了。为什么会崩溃?它不应该只是添加到某个处理队列吗?
我怎样才能防止这种崩溃。有什么技术来管理这个?
我认为这可能是由硬件限制造成的。我打算在覆盆子pi上运行这个web服务。猜猜在我这样做之前我必须要三思而后行。