根据[1]的默认值是当执行时间> 100ms时收集配置文件数据
但问题之一是当大多数查询的执行时间 > 100 毫秒时,我们的系统开始过载,我不确定分析器是否使我们的系统更加繁忙。
我正在考虑禁用或设置一个较大的值,例如 2 秒。好像默认的 100ms 太小了?
[1] http://docs.mongodb.org/manual/tutorial/manage-the-database-profiler/
首先,探查器默认是关闭的。慢查询(默认情况下,任何需要超过 100 毫秒的查询,正如您所提到的)将被记录到 MongoDB 日志中,但这与分析器不同,并且不会占用大量资源(它本质上只是编写一行文本到数据库外的文件,没有锁定等)。保持原样通常是安全的,并且发现慢查询的好处通常远远超过拥有更大日志文件的缺点。
其次,当分析器启用时,它会将它收集的所有数据写入system.profile
集合。在默认级别 0 下,它被禁用,在级别 1 时,它将基于相同的限制记录所有“慢”操作,而在级别 2 时,它将记录所有操作,无论速度如何。
可以想象,将它设置为 2 会占用大量资源 - 您将把写入量加倍,并为每次读取添加一次写入。根据您的工作负载,级别 1 也可能很密集。一般来说,我只会在受控情况下(维护窗口、调试、开发/QA 环境)推荐分析器。
尽管您可以将记录慢速操作的两种方法视为完全独立的,但目前,slowms 值将影响这两种方法,因为它们被视为慢查询。
因此,如果您将该值设置得更高(2 秒),则会减少写入日志的操作量。这样做的缺点是您将错过所有占用该时间的操作,在现代数据库术语中通常被认为是永恒的。100ms 的值通常是一个不错的开始,我什至看到有人根据他们的应用程序在超时方面的要求来降低它,但很少有人值得增加该值。
归档时间: |
|
查看次数: |
1959 次 |
最近记录: |