在一个实例中,我使用了大约 85 个线程的 MongoDB。代替有时间直接调查,我很好奇:
小智 2
最大连接数通常是 ulimit 值的 %80,在大多数 Linux 发行版中默认为 1024。这将为您提供 819 个连接。可以通过更改 ulimit 值来更改它。
在 MongoDB 中,每个主机可以使用 10 个连接,这是通过MongoOptions.connectionsPerHost属性设置的。这些连接由内部连接池控制。它是线程安全的,您最多可以同时运行 ConnectionPerHost x 个threadsAllowedToBlockForConnectionMultiplier线程。threadsAllowedToBlockForConnectionMultiplier也可以更改,其默认值为 5。也就是说,默认情况下,一台主机可以同时运行 50 个线程。超过该值的线程将出现“Out of semaphores to get db connection”异常。
您可以根据需要适当更改MongoOptions.connectionsPerHost和threadsAllowedToBlockForConnectionMultiplier值。
如果您在 Web 应用程序上使用驱动程序,则应该将其用作单例类。不需要“打开连接->做一些工作->关闭连接”循环。只需声明一次全局连接(并在 servlet 的 init 方法中初始化)并在整个 Web 应用程序中使用它。
| 归档时间: |
|
| 查看次数: |
4222 次 |
| 最近记录: |