当我重新启动 Postgresql 11 时,CPU 显示基本上没有 CPU 使用率。但过了一会儿,CPU 被“kdevtmpfsi”占用了。这是什么,我该如何解决?
1275 postgres 99.8 % /tmp/kdevtmpfsi
当我重新启动 Postgresql 11 时,CPU 显示基本上没有 CPU 使用率。但过了一会儿,CPU 被“kdevtmpfsi”占用了。这是什么,我该如何解决?
1275 postgres 99.8 % /tmp/kdevtmpfsi
我使用带有两个 CPU 的 64 位操作系统(每个 CPU 有 7 个逻辑处理器),并且逻辑处理器的总数等于 14。
当我运行此代码时,我得到2048
SELECT max_workers_count FROM sys.dm_os_sys_info
另一方面,当我使用下面的公式时,我得到完全不同的数字,即672
For a 64-bit operating system:
Total available logical CPUs <= 4
Max Worker Threads = 512
Total available logical CPUs > 4
Max Worker Threads = 512 + ((logical CPUs - 4)*16)
你能解释一下为什么我得到不同的数字吗?我在另一台服务器上对其进行了测试,两种情况都得到了完全相同的数字。
编辑
PS 感谢 Dan Guzman 提出的检查最大工作线程的服务器设置的建议。这就是 EXEC sp_configure 'max worker threads' 返回的内容:
在我发布这个问题之前,请阅读以下文章。
我熟悉通过查看以下项目(不全面)来调查高线程数问题:
在我决定做出改变之前,这项调查可能需要几个小时。我可以在短期内做什么,这样请求就不会等待分配工作线程?
我们使用 SCOM 来监控 SQL Server 的许多方面,这就是其中之一。我知道这更多是信息性消息,但始终来自同一服务器的查看使我们有机会查看我上面列出的内容。我想从社区中找出什么,如果他们采取某些行动(可能是暂时的,直到完成全面评估),work_queue_count
一旦 SCOM 触发警报,是否持续大于零。有时很容易检测到消耗大量线程但并非总是如此的单个查询。
通过服务器的任务管理器和通过 SSMS 设置 CPU 亲和力有什么区别?哪个更靠谱?
提前致谢。