在1核2G内存的Debian 10.6服务器上安装并优化PostgreSQL作为Discourse远程数据库 - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

在1核2G内存的Debian 10.6服务器上安装并优化PostgreSQL作为Discourse远程数据库

一切源于折腾,一切为了节约钞票,一台服务器做两台远程数据库使用,反而流量不大,问题应该不大!

一、版本选择与安装

1. 推荐PostgreSQL版本

  • 建议安装版本: PostgreSQL 12或13
  • 安装方法:
    # 添加官方源(以PostgreSQL 12为例)
    sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    sudo apt update
    sudo apt install postgresql-12 postgresql-client-12

2. 与MariaDB 10.6共存

  • 端口分配:PostgreSQL(5432)与MariaDB(3306)分离
  • 资源优先级:优先保障PostgreSQL内存分配

二、关键优化设置

1. 内存分配优化

shared_buffers = 512MB
work_mem = 4MB
maintenance_work_mem = 64MB
effective_cache_size = 768MB

2. 磁盘与检查点优化

checkpoint_timeout = 30min
checkpoint_completion_target = 0.9
synchronous_commit = off

3. 连接与并发控制

max_connections = 50

建议额外安装pgbouncer实现连接池

三、安全与远程访问配置

1. 创建数据库用户

CREATE USER discourse WITH PASSWORD 'your_password';
CREATE DATABASE discourse_db OWNER discourse;
GRANT ALL PRIVILEGES ON DATABASE discourse_db TO discourse;

2. 开放远程访问

# postgresql.conf
listen_addresses = '*'

# pg_hba.conf
host    discourse_db    discourse    0.0.0.0/0    md5

3. 防火墙配置

sudo ufw allow 5432/tcp

四、资源冲突处理

1. 限制MariaDB内存

# /etc/mysql/mariadb.conf.d/50-server.cnf
innodb_buffer_pool_size = 256M
key_buffer_size = 64M

2. 监控工具

  • 使用htopglances实时监控

五、验证与测试

1. 连接测试

psql -h <服务器IP> -U discourse -d discourse_db

2. 性能分析

  • 使用EXPLAIN ANALYZE检查查询计划
  • 监控日志:tail -f /var/log/postgresql/postgresql-12-main.log

总结

通过内存分配优化、连接池管理和资源隔离,可在有限配置下稳定运行PostgreSQL作为Discourse数据库。建议定期使用pg_stat_activity监控长期查询。

 

请登录后发表评论

    没有回复内容

万事屋新帖