文档

关于 SequoiaDB

快速入门

快速入门之一键清理

安装

基本操作

数据模型

SQL引擎

FileSystem引擎

S3引擎

系统架构

数据库管理

连接器

驱动

参考手册

故障排除

SAC 管控中心

Web服务

版本信息

limit设置

如果采用Linux操作系统,在安装 SequoiaDB 产品之后,建议根据实际情况配置数据库进程的 ulimit,以保障系统的稳定高效运行。

调整 ulimit

配置安装目录下的 conf/limits.conf 文件,修改后需重启服务才能生效。

core_file_size=0
data_seg_size=-1
file_size=-1
virtual_memory=-1
open_files=60000
  • 配置描述:

    配置项 描述 默认值
    core_file_size 出现故障时产生 core 文件,用于故障诊断,生产系统建议关闭。 0
    data_seg_size 进程所允许分配的数据段大小。 -1(表示unlimited)
    file_size 进程所允许寻址的文件大小。 -1(表示unlimited)
    virtual_memory 进程所允许最大虚拟内存寻址空间限制。 -1(表示unlimited)
    open_files 进程允许的最大文件句柄数。 60000

    Note:

    • conf/limits.conf 只能配置以上5个参数,其他 ulimit 值,如最大进程数,由当前 Linux Shell 中的 ulimit 值决定。
    • service sdbcm sdbcm、bin/sdbcmart、bin/sdbstart 启动节点和 sdbcm 时,均会引用该配置文件中的配置。
    • 如果不想使用 conf/limits.conf 中的配置,可使用 -i 参数:bin/sdbcmart -i ; bin/sdbstart -i 。
    • 创建节点时,新节点的 ulimit 值跟随 sdbcm 进程的 ulimit 值 。
  • 常见错误:

    非 root 用户设置 ulimit 时,一般情况下,不允许突破 hard limit 的限制。

    如果 conf/limits.conf 配置的值大于当前用户的 hard limit,则会报错。这时需提高 hard limit,或者使用 -i 参数。

    $ ./bin/sdbstart -p 11810
    Error: Failed to set ulimit[open files] to [60000]
    Error: start sequoiadb will set ulimit by file[conf/limits.conf], if you want to set ulimit by current terminal, please use parameter '-i'.
    $ 
    $ # hard limit 值为1024,大于设置的60000
    $ ulimit -Hn
    1024

查看ulimit

查看数据库进程的ulimit

$ cd /opt/sequoiadb
$
$ ./bin/sdblist
sequoiadb(11800) (20111) C
sequoiadb(11830) (20129) D
sequoiadb(11810) (20132) S
$
$ # 查看协调节点进程20132的ulimit信息
$ cat /proc/20132/limits 
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    0                    bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             23711                23711                processes 
Max open files            60000                60000                files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       23711                23711                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us     

也可通过节点健康检测快照查询各个节点的ulimit信息

> db=new Sdb( 'localhost: 11810' )
> db.snapshot( SDB_SNAP_HEALTH )
{
  ...
  "Ulimit": {
    "CoreFileSize": -1,
    "VirtualMemory": -1,
    "OpenFiles": 1024,
    "NumProc": 23948,
    "FileSize": -1
  }
  ...
}
...
回到顶部