# 自动清理
系统自动清理线程（autovacuum）包含VACUUM和ANALYZE两个过程，回收被标识为删除状态的记录空间，并更新表的统计数据。两次autovacuum的执行间隔时间由参数autovacuum_naptime控制，默认时间为10分钟，可根据实际业务场景进行配置。该间隔时间不能保证完全精确，一方面取决于环境的硬件条件和负载，当负载较高时，可能由于需要清理的数据量较大，造成延迟；另一方面取决于相关参数autovacuum_naptime和autovacuum_max_workers的配置值，autovacuum_naptime为执行间隔时间，配置值越小，执行间隔越小，但由于涉及数据的清理和统计信息的计算，占用的CPU、内存和I/O开销均会增大；autovacuum_max_workers为同时运行的自动清理线程的最大数量，配置值越大，执行间隔越符合autovacuum_naptime的配置，但占用的CPU、内存和I/O开销同样会增大。
 #### autovacuum
**参数说明：** 控制数据库自动清理线程（autovacuum）的启动。自动清理线程运行的前提是将[track_counts](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0791.html#ZH-CN_TOPIC_0000002793707573__zh-cn_topic_0059779313_s3f4fb0b1004041f69e1454c701952411)设置为on。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示开启数据库自动清理线程。
- off：表示关闭数据库自动清理线程。
**默认值：**on
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**
- 如果希望系统在故障恢复后，具备自动清理两阶段事务的功能，请将autovacuum设置为on。
- 当设置autovacuum为on，[autovacuum_max_workers]为0时，表示系统不会自动进行autovacuum，只会在故障恢复后自动清理两阶段事务。
- 当设置autovacuum为on，[autovacuum_max_workers]大于0时，表示系统不仅会在故障恢复后自动清理两阶段事务，还可以自动进行autovacuum。
**设置不当的风险与影响：**在ASTORE表中，关闭该参数会导致表中有过多的不活跃行存在，可能会影响查询性能。
 #### autovacuum_mode
**参数说明：** 该参数仅在[autovacuum]设置为on的场景下生效，它控制autoanalyze和autovacuum的打开情况。
**参数类型：**枚举类型
**参数单位：**无
**取值范围：**
- analyze：表示只做autoanalyze。
- vacuum：表示只做autovacuum。
- mix：表示autoanalyze和autovacuum都做。
- none：表示autoanalyze和autovacuum都不做。
**默认值：**mix
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### autoanalyze_timeout
**参数说明：**设置autoanalyze的超时时间。在对某张表做autoanalyze时，如果该表的analyze时长超过了autoanalyze_timeout，则自动取消该表此次analyze。
这里的时间检查不能保证完全精确，原则上要保证各个CN上统计信息一致，因此在CN间同步信息时，即便超时也不会被打断。这导致实际的执行时间有可能超过用户定义的时间。
**参数类型：**整型
**参数单位：**s（秒）
**取值范围：**0 \~ 2147483，0表示没有超时限制。
**默认值：**300
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。取值不能带单位。
**设置建议：**设置值取决于数据库的负载和性能需求。如果数据库的负载较轻，可以适当地将autoanalyze_timeout设置大些，以便自动分析操作有足够的时间来完成。如果数据库的负载较重，则应该将autoanalyze_timeout设置小些，以便自动分析操作可以在短时间内完成，从而避免影响其他重要的数据库操作。
**设置不当的风险与影响：**autoanalyze操作会消耗一定的系统资源，如果该参数设置太大，可能会导致系统资源被过度消耗，从而影响数据库的性能。如果设置太小，autoanalyze操作可能无法完成，可能会导致统计信息不准确，从而影响查询的执行计划和性能。
#### autovacuum_io_limits
**参数说明：**控制autovacuum线程每秒触发I/O的上限。
**参数类型：**整型
**参数单位：**无
**取值范围：**-1 \~ 1073741823。其中-1表示不控制，而是使用系统默认控制组。
**默认值：**-1
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**
- 服务器有足够的磁盘I/O资源，可以将autovacuum_io_limits设置为较高的值，这将允许autovacuum线程更快地完成清理操作。
- 服务器磁盘I/O资源有限，可以将autovacuum_io_limits设置为较低的值。这将限制autovacuum线程使用的磁盘I/O资源，以避免对其他线程的影响。
**设置不当的风险与影响：**
- 设置为过高的值，可能会导致autovacuum线程使用过多的磁盘I/O资源，从而影响其他线程的性能。
- 设置为过低的值，可能会导致autovacuum线程无法有效地清理表数据，从而导致表数据过度膨胀，影响数据库性能。
 
#### log_autovacuum_min_duration
**参数说明：**当自动清理的执行时间大于或者等于某个特定的值时，向服务器日志中记录自动清理执行的每一步操作。设置此选项有助于追踪自动清理的行为。
例如：将log_autovacuum_min_duration设置为250ms，表示记录所有运行大于或者等于250ms的自动清理命令的相关信息。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：**-1 \~ 2147483647
- 当参数设置为0时，表示所有的自动清理操作都记录到日志中。
- 当参数设置为-1时，表示所有的自动清理操作都不记录到日志中。
- 当参数设置大于等于0时，当由于锁冲突的存在导致一个自动清理操作被跳过，记录一条消息（记录跳过autovacuum原因，便于审计）。
**默认值：**-1
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，不带单位取值600，表示log_autovacuum_min_duration为600ms；带单位取值10min，表示log_autovacuum_min_duration为10min。取值如果要带单位，必须为ms、s、min、h、d。
**设置建议：**一般默认为-1。如果需要监控自动VACUUM操作的性能，可以将log_autovacuum_min_duration设置为一个大于0的值，以记录持续时间超过该值的自动VACUUM操作的日志信息。
**设置不当的风险与影响：**如果设置为0或者过小，则可能会记录大量的日志信息，影响系统性能；如果设置过大，可能无法及时感知自动清理时间过久，导致清理速度不足或异常情况。
 #### autovacuum_max_workers
**参数说明：**设置能同时运行的自动清理线程的最大数量。
**参数类型：**整型
**参数单位：**无
**取值范围：** 最小值为0（表示不会自动进行AUTOVACUUM），理论最大值为1024，用户设置超过1024时会内部自动调整为1024，但设置的参数值仍可能超过实际取值上限；该参数的实际取值上限与GUC参数[max_connections](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0757.html#ZH-CN_TOPIC_0000002764308724__zh-cn_topic_0059777636_sa723b719fa70453bb7ec27f323d41c79)和[job_queue_processes](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0824.html#ZH-CN_TOPIC_0000002793706999__zh-cn_topic_0059778487_section10342177134137)大小有关，计算公式为"262143 - max_inner_tool_connections - max_connections - max_concurrent_autonomous_transactions - job_queue_processes - 辅助线程数 -- autovacuum的launcher线程数\[x(1\] - 1"，其中辅助线程数和autovacuum的launcher线程数由两个宏来指定，当前版本的默认值分别为20和2。
**默认值：**3
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置越大，自动清理功能创建的线程数越多，占用的系统CPU和内存资源越多，所以设置时不建议设置过大，避免由于此参数设置过大导致内存无法分配或者占用过多CPU资源，导致数据库启动报错或业务受到影响。如果将该参数设置过小，可能会导致autovacuum线程无法及时清理和回收不再使用的表空间，从而导致数据库膨胀和性能下降。参数实际设置值需要根据取值范围的实际上限评估，一般可达到1024；如果设置值超过实际上限则会设置失败。此参数设置后对新线程生效，而对当前运行中的线程无效。
 #### autovacuum_naptime
**参数说明：**设置两次自动清理操作的时间间隔。
**参数** **类型：**整型
**参数** **单位：**s（秒）
**取值范围：**1 \~ 2147483
**默认值：**600（即10min）
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，不带单位取值600，表示autovacuum_naptime为600s；带单位取值10min，表示autovacuum_naptime为10min。取值如果要带单位，必须为s、min、h、d。
**设置建议：**仅用Ustore表时推荐使用默认值。对于Astore表，设置值取决于用户的数据库环境和应用程序负载。如果数据库环境中有大量表的更新或删除操作，建议将该参数设置为较短的时间间隔，以确保及时清理无用的数据并避免数据库空间不足的情况。如果数据库环境中的更新或删除操作较少，则可以将该参数设置为较长的时间间隔，以减少自动清理线程的开销。
**设置不当的风险与影响：**
- 如果将autovacuum_naptime设置为过短的时间间隔，可能会导致autovacuum线程的开销过大，从而影响数据库的性能。
- 如果将autovacuum_naptime设置为过长的时间间隔，可能会导致无用的数据堆积，从而占用数据库空间，影响数据库的性能。
 
 #### autovacuum_vacuum_threshold
**参数说明：** 触发ASTORE表和USTORE表VACUUM操作的基准值。触发VACUUM的阈值=autovacuum_vacuum_threshold+reltuples（表上元组的个数）\* [autovacuum_vacuum_scale_factor]。当表上被删除和更新的记录数总和超过阈值时，才会对这个表执行VACUUM操作。
**参数类型：**整型
**参数单位：**无
**取值范围：**0 \~ 2147483647
**默认值：**50
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**
- 该参数设置得过低，会导致频繁的VACUUM操作，增加系统开销，降低性能。
- 该参数设置得过高，会导致表中过多的死亡行存在，可能会影响查询性能。
 
 #### autovacuum_analyze_threshold
**参数说明：** 触发ASTORE表和USTORE表ANALYZE操作的基准值。触发ANALYZE的阈值=autovacuum_analyze_threshold+reltuples（表上元组的个数）\* [autovacuum_analyze_scale_factor]。当表上被删除、插入和更新的记录数总和超过阈值时才会对这个表执行ANALYZE操作。若表上存在全局二级索引，则当表上被删除、插入和更新的记录数总和超过阈值的20倍时，才会对全局二级索引执行ANALYZE操作。
**参数类型：**整型
**参数单位：**无
**取值范围：**0 \~ 2147483647
**默认值：**50
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**
- 该参数设置得过低，会导致频繁的ANALYZE操作，增加系统开销，降低性能。
- 该参数设置得过高，表中的统计信息可能会过时，从而导致查询计划不准确，影响查询性能。
 
 #### autovacuum_vacuum_scale_factor
**参数说明：** 触发ASTORE表和USTORE表VACUUM操作的规模因子。触发VACUUM的阈值=[autovacuum_vacuum_threshold]+reltuples（表上元组的个数）\* autovacuum_vacuum_scale_factor。当表上被删除和更新的记录数总和超过阈值时，才会对这个表执行VACUUM操作。
**参数类型：**浮点型
**参数单位：**无
**取值范围：**0.0 \~ 100.0
**默认值：**0.2
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**设置值取决于表的负载和使用情况；如果是高写入负载的，则用户需要将该参数设置得更低，以便更频繁地清理表以避免性能下降。另一方面，如果是高读取负载的，则可以将该参数设置得更高，以避免在读取时不必要地浪费资源。
**设置不当的风险与影响：**
- 该参数设置得太低，那么autovacuum线程可能会过于频繁地清理表，导致性能下降。
- 该参数设置得太高，那么表可能无法及时清理，会变得非常大，占用过多的磁盘空间。
 
 #### autovacuum_analyze_scale_factor
**参数说明：** 触发ASTORE表和USTORE表ANALYZE操作的规模因子。触发ANALYZE的阈值=[autovacuum_analyze_threshold]+reltuples（表上元组的个数）\* autovacuum_analyze_scale_factor。当表上被删除、插入和更新的记录数总和超过阈值时，才会对这个表执行ANALYZE操作。
**参数类型：**浮点型
**参数单位：**无
**取值范围：**0.0 \~ 100.0
**默认值：**0.1，即表上元组数的10%。
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**
- 该参数设置得过低，会导致频繁的ANALYZE操作，增加系统开销，降低性能。
- 该参数设置得过高，可能会导致ANALYZE的频率过低，表中的统计信息可能会过时，从而导致查询计划不准确，影响查询性能。
 
#### autovacuum_analyze_window
**参数说明：** 在周一至周日范围内指定一个或多个时间窗口，在给定时间窗口中以[autovacuum_analyze_window_scale_factor]作为触发ASTORE表和USTORE表ANALYZE操作的规模因子。
**参数类型：**字符串
**参数单位：**无
**取值范围：**空字符串或由一个或多个指定时间窗口组成的字符串，由逗号分割。
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 指定时间窗口的字符串为键值对格式，即key=value。
- 时间窗口的键必须为MONDAY_WINDOW、TUESDAY_WINDOW、WEDNESDAY_WINDOW、THURSDAY_WINDOW、FRIDAY_WINDOW、SATURDAY_WINDOW或SUNDAY_WINDOW，大小写不敏感。
- 时间窗口的值的格式为HH:MM-HH:MM，按"-"分隔。左边为窗口开始时间，右边为窗口结束时间。该格式中不能包含空格，最小时间为00:00，最大时间为23:59。
- 时间窗口的结束时间如果小于开始时间表明时间窗口出现跨天，如"MONDAY_WINDOW=22:00-02:00"，表明时间窗口从周一的晚上22点到周二的凌晨2点。
- 多天的时间窗口不能出现重叠。如无法设置"MONDAY_WINDOW=22:00-05:00,TUESDAY_WINDOW=03:00-09:00"，可以设置"MONDAY_WINDOW=22:00-02:59,TUESDAY_WINDOW=03:00-09:00"。
- 该参数不受[autovacuum_mode]参数控制，只要该参数设置成功，在给定时间窗口内会一直收集统计信息。
- 该参数同一天只能配置一个窗口，如果同一天配置多个窗口，只有最后配置的窗口生效。
- 时间窗口按照系统本地时间进行判断，改变系统时间时区时，请确认是否需要修改本参数配置的时间窗口。
 
**默认值：**""
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值，根据业务场景适当调整。
**设置不当的风险与影响：** 单个时间窗口设置的时间间隔需大于[autovacuum_naptime]取值，否则时间窗口可能无法生效。
 #### autovacuum_analyze_window_scale_factor
**参数说明：** 时间窗口内触发ASTORE表和USTORE表ANALYZE操作的规模因子。触发ANALYZE的阈值 = [autovacuum_analyze_threshold] + reltuples（表上元组的个数） \* autovacuum_analyze_window_scale_factor。当表上被删除、插入和更新的记录数总和超过阈值时，才会对这个表执行ANALYZE操作。
**参数类型：**浮点型
**参数单位：**无
**取值范围：**0.0 \~ 100.0
**默认值：**0.1
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**
- 该参数设置得过低，会导致时间窗口内频繁的ANALYZE操作，增加系统开销，降低性能。
- 该参数设置得过高，可能会导致时间窗口内ANALYZE的频率过低，表中的统计信息可能会过时，从而导致查询计划不准确，影响查询性能。
 
 #### autovacuum_freeze_max_age
**参数说明：**指定ASTORE表和USTORE表pg_class.relfrozenxid64字段在超过多少个事务后，会强制执行VACUUM操作。即使自动清理被禁用，系统也会启动AUTOVACUUM线程。强制VACUUM结束后会清理pg_clog和pg_csnlog子目录中可以被删除的旧文件，防止pg_clog和pg_csnlog目录无限膨胀。
**参数类型：**整型
**参数单位：**无
**取值范围：**100000 \~ 576460752303423487
**默认值：**4000000000
**设置方式：** 该参数属于POSTMASTER类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。如果数据库中的ASTORE表经常进行大量的更新和删除操作，那么建议将该参数设置为较小的值，以便及时回收垃圾。如果数据库中的ASTORE表很少进行更新和删除操作，那么可以将该参数设置为较大的值，以减少自动垃圾回收的频率。
**设置不当的风险与影响：**
- 该参数设置得过低，会导致频繁的自动垃圾回收操作，增加系统开销，降低性能。
- 该参数设置得过高，会导致自动垃圾回收的延迟，从而可能导致大量的无效数据占用磁盘空间，影响数据库性能。
 
#### autovacuum_vacuum_cost_delay
**参数说明：**设置在自动VACUUM操作里使用的开销延迟数值。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：** -1 \~ 100。其中-1表示使用常规的[vacuum_cost_delay](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0764.html#ZH-CN_TOPIC_0000002793707715__section117926911015)。
**默认值：**20
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### autovacuum_vacuum_cost_limit
**参数说明：**设置在自动VACUUM操作里使用的开销限制数值。
**参数类型：**整型
**参数单位：**无
**取值范围：** -1 \~ 10000。其中-1表示使用常规的[vacuum_cost_limit](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0764.html#ZH-CN_TOPIC_0000002793707715__section1557591091412)。
**默认值：**-1
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### twophase_clean_workers
**参数说明：**该参数用来控制内核调度gs_clean工具的并发清理数。
**参数类型：**整型
**参数单位：**无
**取值范围：**1 \~ 10
**默认值：**3
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### clog_keep_xids
**参数说明：**设置clog事务文件保留的事务数。
**参数类型：**整型
**参数单位：**无
**取值范围：**0 \~ 576460752303423487
- 值为0时 ：按照原有回收逻辑进行回收，不额外保留事务文件。
- 值为非0且在取值范围内时 ：按照新的回收逻辑进行回收（配置保留事务数的计算基于当前最新的事务ID，且仅当新配置的参数范围包含原本回收逻辑需要回收的事务文件时，才会触发保留机制）
**默认值：**0
**说明**：谨慎评估并确保环境预留足够的磁盘空间。每节点磁盘空间估算方法如下：
（配置保留事务数的计算基于当前最新的事务ID，且仅当新配置的参数范围包含原本回收逻辑需要回收的事务文件时，才会触发保留机制）
clog保留的空间占用（字节）：(clog_keep_xids / 4)
clog保留的空间占用(hashbucket)（字节）：db数 \* buckets数 \* (clog_keep_xids / 4)
例：clog_keep_xids配置4294967295的情况，普通场景共占用4294967295 / 4 = 1073741823字节，约1GB空间。
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值（根据上面公式计算磁盘空间占用，在保证磁盘空间充足的前提下，如果不存在hashbucket业务建议设置为8589934590，如存在hashbucket业务建议设置为8388607）。
**设置不当的风险与影响：**设置不合理可能导致磁盘空间占用偏大，所有节点都涉及，请谨慎评估。
#### csnlog_keep_xids
**参数说明：**设置csnlog事务文件保留的事务数。
**参数类型：**整型
**参数单位：**无
**取值范围：**0 \~ 576460752303423487
- 值为0时 ：按照原有回收逻辑进行回收，不额外保留事务文件。
- 值为非0且在取值范围内时 ：按照新的回收逻辑进行回收（配置保留事务数的计算基于当前最新的事务ID，且仅当新配置的参数范围包含原本回收逻辑需要回收的事务文件时，才会触发保留机制）
**默认值：**0
**说明**：谨慎评估并确保环境预留足够的磁盘空间。每节点磁盘空间估算方法如下：
（配置保留事务数的计算基于当前最新的事务ID，且仅当新配置的参数范围包含原本回收逻辑需要回收的事务文件时，才会触发保留机制）
csnlog_keep_xids空间估算：
csnlog保留的空间占用（字节）：(csnlog_keep_xids \* 8)
例：csnlog_keep_xids配置4294967295的情况，共占用4294967295 \* 8 = 34359738360字节，约34GB空间。
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值（根据上面公式计算磁盘空间占用，在保证磁盘空间充足的前提下，建议设置为252645135）。
**设置不当的风险与影响：**设置不合理可能导致磁盘空间占用偏大，所有节点都涉及，请谨慎评估。
#### defer_csn_cleanup_time
**参数说明：**用来指定本地回收时间间隔。
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：**0 \~ 2147483647
**默认值** **：**5000（即5s）
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。一般来说，如果系统的负载较轻，可以将defer_csn_cleanup_time设置为较长的时间。如果系统的负载较重，建议将defer_csn_cleanup_time设置为较短的时间。这样可以确保系统在忙碌时也能保持良好的性能。
**设置不当的风险与影响：**defer_csn_cleanup_time参数用于控制系统何时清理已过期的CSN信息。它指定了系统在多长时间内保留已过期的CSN信息。如果设置得太短，系统可能会频繁地清理已过期的CSN信息，从而导致性能下降。如果设置得太长，系统可能会占用过多的内存，从而导致系统变慢或崩溃。
#### multixact_keep_mxids
**参数说明：**设置multixact事务文件保留的事务数。
**参数类型：**整型
**参数单位：**无
**取值范围：**0 \~ 576460752303423487
- 值为0时 ：按照原有回收逻辑进行回收，不额外保留事务文件。
- 值为非0且在取值范围内时 ：按照新的回收逻辑进行回收（配置保留事务数的计算基于当前最新的multixact ID，且仅当新配置的参数范围包含原本回收逻辑需要回收的事务文件时，才会触发保留机制）
**默认值：**0
**说明**：谨慎评估并确保环境预留足够的磁盘空间。每节点磁盘空间估算方法如下：
（配置保留事务数的计算基于当前最新的事务ID，且仅当新配置的参数范围包含原本回收逻辑需要回收的事务文件时，才会触发保留机制）
multixact_keep_mxids空间估算：
multixact保留的空间占用（字节）：(multixact_keep_mxids \* 8 + multixact_keep_mxids \* members \* 8)
例：multixact_keep_mxids配置4294967295的情况，multixact平均3并发(3个members)场景下，共占用
(4294967295 \* 8 + 4294967295 \* 3 \* 8) = 137438953440字节，约137GB空间。
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值（根据上面公式计算磁盘空间占用，在保证磁盘空间充足的前提下，建议设置为63161283）。
**设置不当的风险与影响：**设置不合理可能导致磁盘空间占用偏大，所有节点都涉及，请谨慎评估。
