Foglight 内置后端数据库PostgreSQL 优化

Foglight默认使用PostgreSQL做后端数据库,当监控内容增加和运行时间增长时,数据库往往需要优化。这里以在Centos7,Foglight 5.9.2 为例说明。

PostgreSQL 数据库的配置文件,位置 ./state/postgresql-data/postgresql.conf

打开该文件,主要修改如下参数:

  • shared_buffers = 512MB

决定有多少内存可以被PostgreSQL用于缓存数据(推荐空闲内存的1/4),

  • temp_buffers = 32MB

PostgreSQL系统默认值为8M,Foglight默认值是 32MB

  • work_mem = 8MB
内部排序和一些复杂的查询都在这个buffer中完成,PostgreSQL 系统提供的默认值是1M。
  • maintenance_work_mem = 128MB
这里定义的内存只是被VACUUM等耗费资源较多的命令调用时使用,由于Foglight要定期转存和清理数据,这个值比较重要。
  • effective_cache_size = 4G
使用操作系统的缓存技术缓存数据。是Foglight默认值。
 
通过公式: max_connections*work_mem+shared_buffers+temp_buffers+maintenance_work_mem+操作系统所需内存
计算总内存需要。建议不要够超过整个的RAM大小,这是非常重要的。
修改后,重起foglight 和数据库
./bin/fmsShutdown.sh
./bin/shutdownDb.sh
然后
./bin/fmsStartup.sh