PostgreSQL 打开文件句柄优化 - 百万以上实体对象初始化优化

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

PostgreSQL 打开文件句柄优化 - 百万以上实体对象初始化优化

德哥 2017-02-15 19:45:19 浏览2376
展开阅读全文

标签

PostgreSQL , ulimit , nofile , fs.nr_open , setrlimit


背景

数据库是一种非常庞大的应用系统,就拿PostgreSQL来说,每个实体对象(物化视图、表、序列、索引、TOAST表、TOAST索引)都需要至少1个数据文件,还需要fsm, vm等辅助文件。

当数据库中有很多实体对象时,文件数会非常庞大,而对于Linux操作系统来说,单个进程的打开文件数是有限制的。PostgreSQL数据库新增了一层文件句柄管理,使用文件句柄池来管理文件的打开和关闭。

但是如果需要打开或关闭的文件数特别多(例如 某个业务一下子创建了几十万张表,然后做检查点),文件句柄池就会不停的切换,成为系统的瓶颈。

本文结合Linux 的文件句柄限制,以及PostgreSQL的文件句柄相关配置,讲一下如何优化这类应用场景。

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属云栖号: 阿里云数据库ApsaraDB