Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres进程显示100%的CPU,但实际使用率为6%,导致查询响应缓慢_Postgresql_Grafana_Cloudflare - Fatal编程技术网

Postgresql Postgres进程显示100%的CPU,但实际使用率为6%,导致查询响应缓慢

Postgresql Postgres进程显示100%的CPU,但实际使用率为6%,导致查询响应缓慢,postgresql,grafana,cloudflare,Postgresql,Grafana,Cloudflare,我们使用Postgres作为Grafana dashboard的数据源。运行查询时,top命令显示postgres使用100%的CPU,但实际的CPU大约为6%,这导致查询响应缓慢,因此Grafana显示524超时错误(Cloudflare)(请参阅下面的屏幕截图) 系统配置: 操作系统:Ubuntu 16.04 内存:16GB CPU:16核Hyper-V 下面是配置文件 postgressql.conf max_connections = 300 unix_socket_direct

我们使用Postgres作为Grafana dashboard的数据源。运行查询时,
top
命令显示postgres使用100%的CPU,但实际的CPU大约为6%,这导致查询响应缓慢,因此Grafana显示524超时错误(Cloudflare)(请参阅下面的屏幕截图)

系统配置: 操作系统:Ubuntu 16.04 内存:16GB CPU:16核Hyper-V

下面是配置文件

postgressql.conf

max_connections = 300   
unix_socket_directories = '/var/run/postgresql' 
ssl = true  
shared_buffers = 4GB
work_mem = 13981kB      
maintenance_work_mem = 1GB      
dynamic_shared_memory_type = posix  
effective_io_concurrency = 200  
max_worker_processes = 16
wal_buffers = 16MB
max_wal_size = 8GB
min_wal_size = 2GB
checkpoint_completion_target = 0.9  
random_page_cost = 1.1          
effective_cache_size = 12GB
log_line_prefix = '%t [%p-%l] %q%u@%d '     
log_timezone = 'localtime'
stats_temp_directory = '/var/run/postgresql/9.5-main.pg_stat_tmp'
datestyle = 'iso, mdy'
timezone = 'localtime'
lc_messages = 'en_US.UTF-8'         
lc_monetary = 'en_US.UTF-8'         
lc_numeric = 'en_US.UTF-8'  
lc_time = 'en_US.UTF-8' 
default_text_search_config = 'pg_catalog.english'
我是博士后的新手,如果我错过了什么或者你有什么建议,请告诉我

更新
My/boot文件夹已满100%,不确定这是否有任何区别。

您显示的
顶部
输出中的摘要行具有累计CPU使用量

您的一个内核正忙于PostgreSQL查询,但这只是计算机中几个内核中的一个,因此它包含在摘要行中显示的6.6%的“用户”CPU中


该输出的报警部分是74.3%的“系统”CPU时间。机器中四分之三的内核正在进行操作系统维护工作。有严重的问题。也许你没有禁用透明的大页面?但要得出结论,您需要了解Linux的人进行更深入的分析。

您显示的
顶部的
输出中的摘要行包含累计CPU使用量

您的一个内核正忙于PostgreSQL查询,但这只是计算机中几个内核中的一个,因此它包含在摘要行中显示的6.6%的“用户”CPU中


该输出的报警部分是74.3%的“系统”CPU时间。机器中四分之三的内核正在进行操作系统维护工作。有严重的问题。也许你没有禁用透明的大页面?但要得出结论,您需要了解Linux的人进行更深入的分析。

我想问一下,即使有18%的空闲cpu,为什么postgres进程显示接近100%的cpu,为什么它不使用剩余的。@ShubhRocksGoel我建议您阅读top的文档,因为您似乎误解了这些数字的含义。关注这18%几乎肯定是一个错误的开始。它使用了95%的单个CPU核心,这还不到可用CPU总功率的6.6%。一个线程只能同时在一个内核上运行。感谢您的有用回答。我想问一下,即使有18%的空闲cpu,为什么postgres进程显示接近100%的cpu,为什么它不使用剩余的。@ShubhRocksGoel我建议您阅读top的文档,因为您似乎误解了这些数字的含义。关注这18%几乎肯定是一个错误的开始。它使用了95%的单个CPU核心,这还不到可用CPU总功率的6.6%。一个线程只能同时在一个内核上运行。感谢您提供的有用答案