The specified memory limit range for your system is between GAUSS-04491 and GAUSS-04500, indicating a predefined set of memory constraints for optimal performance.
参数名称 | 说明 | 设置原则 | 取值范围 | 默认值 |
shared_buffers | 设置GaussDB使用的共享内存大小,增加此参数的值会使GaussDB比系统默认设置需要更多的System V共享内存,需要重新设置共享内存和信号灯。 | 服务器内存小于1GB时,建议设置shared_buffers占用内存比例小于25%,这样可以留下更多的内存空间给操作系统调用,服务器内存大于1GB小于4GB时,建议设置shared_buffers值为系统内存的25%,服务器内存大于4GB时,建议设置shared_buffers值为内存的40%以内,不建议设置shared_buffers的值超过40%,通常设置较大的shared_buffers需要同时增加checkpoint_segments的值,因为写入大量新增、修改数据需要消耗更多的时间周期。 | 整型,128kB~操作系统支持的最大值,改变BLCKSZ的值会改变最小值。 | 32MB,如果操作系统支持的共享内存小于32MB,则在初始化数据存储区时会自动调整为操作系统支持的最大值。 |
temp_buffers | 设置每个数据库会话使用的LOCAL临时缓冲区的大小,在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的,一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区,如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小,当缓冲区被使用,就会额外消耗8192字节。 | 整型(kB) | 8MB | |
max_prepared_transactions | 设置可以同时处于”预备”状态的事务的最大数目,增加此参数的值会使GaussDB比系统默认设置需要更多的System V共享内存,当GaussDB部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。 | 整型,为避免在准备步骤失败,此参数的值不能小于max_connections。 | 10,表示关闭预备事务的特性。 | |
work_mem | 设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小,ORDER BY, DISTINCT 和merge joins都要用到排序操作,Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到,对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件,因此使用的总内存可能是work_mem的好几倍。 | 整型(kB) | 1MB | |
maintenance_work_mem | 设置在维护性操作(VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY 等)中可使用的最大的内存,建议设置此参数的值大于work_mem,可以改进清理和恢复数据库转储的速度,因为在一个数据库会话里,任意时刻只有一个维护性操作可以执行,并且在执行维护性操作时不会有太多的会话,当自动清理进程运行时,autovacuum_max_workers倍数的内存将会被分配,所以此时设置maintenance_work_mem的值不应该小于work_mem。 | 整型(kB) | 16MB | |
max_stack_depth | 设置GaussDB执行堆栈的最大安全深度,需要这个安全界限是因为在服务器里,并非所有程序都检查堆栈深度,只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查,设置此参数的值大于实际的内核限制,则一个正在运行的递归函数可能会导致一个独立的服务器进程崩溃,在GaussDB能够检测内核限制的操作系统上(SUSE Linux上),将自动限制设置为一个不安全的值,因为并非所有的操作都能够检测,所以建议您在此设置一个明确的值。 | 整型(kB) | 2MB | |
max_saved_plans | 设置服务器缓存的执行计划最大数量,该执行计划可能是在函数编译结果中的,也可能是由带提示的SELECT语句查询产生的,缓存过多的函数执行计划可能占用很大内存,将此参数设置为一个合理的值,有助于减少内存占用,提升系统性能。 | 整型,取值必须大于等于-1。 | -1,表示不限制缓存的函数执行计划的数量。 | |
max_catcache_tuple | 设置服务器缓存的系统表元组的最大数量,缓存过多的系统表元组可能占用很大内存,将此参数设置为一个合理的值,有助于减少内存占用,提升系统性能。 | 整型,取值必须大于等于-1。 | -1,表示不限制缓存的系统表元组的数量。 | |
max_relcache_entry | 设置服务器缓存的表模式信息的最大数量,缓存过多的表模式信息可能占用很大内存,将此参数设置为一个合理的值,有助于减少内存占用,提升系统性能。 | 整型,取值必须大于等于-1。 | -1,表示不限制缓存的表模式信息的数量。 |
这些参数的合理配置对于优化GaussDB数据库的性能至关重要,通过调整这些内存参数,可以有效地管理内存使用,提高系统的稳定性和响应速度。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1469786.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复