在Windows桌面上调整postgreSQL以利用24GB RAM
我是调试postgreSQL的新手,但已经阅读了这个标准指南:
https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
并使用pgtune获取一些配置建议.我在Windows 8上运行postgreSQL 9.3,正在进行数据分析,我的桌面有24GB RAM,一个i7 4核处理器,以及一个7200rpm hdd,带有32GB SSD缓存,使用intel智能响应. 似乎postgreSQL没有充分利用计算机,我想知道在调优方面我还需要做些什么. pgtune对postgresql.conf进行了以下更改: > default_statistics_target = 100 现在我运行这个复杂的自联接,在5GB表“training”上使用group by查询计数,该表包含1亿行和4个整数列: SELECT t1.m_id,t2.m_id,count(*) FROM training t1,training t2 WHERE t1.u_id = t2.u_id AND t1.m_id < t2.m_id GROUP BY t1.m_id,t2.m_id EXPLAIN显示以下查询计划: GroupAggregate (cost=4984590388.65..5216672318.82 rows=25381444 width=8) -> Sort (cost=4984590388.65..5042547417.59 rows=23182811573 width=8) Sort Key: t1.m_id,t2.m_id -> Nested Loop (cost=0.57..676446040.92 rows=23182811573 width=8) -> Seq Scan on training t1 (cost=0.00..1621754.12 rows=99072112 width=8) -> Index Only Scan using training_u_id_m_id_idx on training t2 (cos=0.57..4.90 rows=191 width=8) Index Cond: ((u_id = t1.u_id) AND (m_id > t1.m_id)) 它已经运行了8个小时,但我感兴趣的是任务经理透露的内容. PostgreSQL Server进程仅使用: > 15%的CPU 没有其他流程占用大量资源.令我惊讶的是,鉴于查询的复杂性,postgreSQL不会使用更多可用资源,是否有人知道可能会发生什么?我的pgtune值看起来好吗? 我做了一些研究,告诉我: >在Windows上,shared_buffers不应大于512MB,而应使用该系统缓存.问题:我是否必须以某种方式告诉Windows将系统缓存分配给postgreSQL,否则如果postgreSQL请求它会自动发生? 我将非常感谢任何有助于加快此查询的见解.谢谢!
我认为effective_cache_size听起来很小,尝试20GB.此外,对于分析工作负载,work_mem非常小.如果您确定不会有很多连接,我会将其设置为1GB(并且进一步降低max_connections将保护您不会意外地运行大量连接)
单个7200rpm硬盘似乎不足以满足分析工作量.我不熟悉“使用英特尔智能响应的SSD缓存”,也许这可以帮助弥补它.你能告诉我们5 GB表中有多少缓存吗? 您可能还需要增加effective_io_concurrency,而不知道SSD缓存的执行方式我不知道会有多少好处.但它可能有所帮助,也可能不会受到伤害. 内存使用率低是可以的. Windows应该使用内存来缓存文件数据,这应该有助于postgres,但不会向postgres收费. 我不知道在任务管理器中你找到“3.5%磁盘”的位置,我找不到这样的指标. PostgreSQL 9.3没有将单个查询并行化到多个CPU(版本9.6中添加了并行查询),因此15%的CPU使用率并不是完全受CPU限制. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Windows中从Golang启动一个新的命令窗口
- dynamic-crm – 您的Microsoft Dynamics CRM经验
- windows-phone-7 – Windows Phone 7上的Dispatc
- 如何使用cl编译Window API程序?
- 无法加载文件或程序集“Microsoft.WindowsAzure.
- .net core 3.0 WPF中使用FolderBrowserDialog
- windows-server-2008-r2 – ESXi上的Windows服务
- Windows SharePoint Services与Microsoft Office
- Windows上的TCP Windows大小与套接字缓冲区大小
- 在Windows中,使用命令行,如何检查远程端口是否打