
# 内核资源使用
介绍与操作系统内核相关的参数，这些参数是否生效依赖于操作系统的设置。
#### max_files_per_process
**参数说明：**设置每个数据库线程允许同时打开的最大文件数量。
**参数类型：**整型
**参数单位：**无
**取值范围：**25 \~ 2147483647
**默认值：**1024
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**如果操作系统内核强制一个合理的数目，则不需要设置。但是在一些平台上（特别是大多数BSD系统），内核允许独立进程打开比系统真正可以支持的数目大得多的文件数。如果用户发现有"Too many open files"失败现象，请尝试缩小这个设置。通常情况下需要满足，系统FD（file descriptor）数量\>=最大并发数\*当前服务器主DN个数\*max_files_per_process\*3。
**设置不当的风险与影响：**请根据实际使用需求进行设置。如果设置过小，有效安全文件句柄可能较少，从而导致集群状态异常。
#### shared_preload_libraries
**参数说明：**此参数用于声明一个或者多个在数据库启动的时候需要预先装载的共享库，多个库名字之间用逗号分隔。比如 '$libdir/mylib' 会在加载标准库目录中的库文件之前预先加载mylib.so（某些平台上可能是mylib.sl），当前该参数只能由sysadmin用户可以访问设置。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 如果被声明的库不存在，GaussDB服务将会启动失败。
- 每一个支持GaussDB的库都有一个特殊的标记用于保证兼容性。因此，不支持GaussDB的库不能用这种方法加载。
 
**参数类型：**字符串
**参数单位：**无
**取值范围：**字符串
**默认值：**''platform_compatibility_b,security_plugin''
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**可以用这个方法预先装载GaussDB的存储过程库，通常是使用'$libdir/plXXX'语法。XXX只能是pgsql、perl、tcl、python之一。
通过预先装载一个共享库并在需要的时候初始化，可以避免第一次使用这个库的加载时间。但是启动每个服务器进程的时间可能会增加，即使进程从来没有使用过这些库。因此建议对那些将被大多数会话使用的库才使用这个选项。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
