插件窝 干货文章 配置Linux系统以支持分布式数据库开发

配置Linux系统以支持分布式数据库开发

sudo bash 配置 tcp 822    来源:    2025-04-17

Linux系统配置以支持分布式数据库开发

系统基础配置

1. 内核参数优化

# 编辑/etc/sysctl.conf
sudo nano /etc/sysctl.conf

# 添加或修改以下参数
vm.swappiness = 10
vm.overcommit_memory = 1
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_fin_timeout = 30
fs.file-max = 1000000
fs.aio-max-nr = 1048576

# 使配置生效
sudo sysctl -p

2. 文件描述符限制

# 编辑/etc/security/limits.conf
sudo nano /etc/security/limits.conf

# 添加以下内容
* soft nofile 1000000
* hard nofile 1000000
* soft nproc 32768
* hard nproc 32768
* soft memlock unlimited
* hard memlock unlimited

3. 禁用透明大页(THP)

# 编辑/etc/rc.local
sudo nano /etc/rc.local

# 在exit 0前添加
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# 使脚本可执行并立即执行
sudo chmod +x /etc/rc.local
sudo /etc/rc.local

网络配置优化

1. 网络栈调优

# 编辑/etc/sysctl.conf
sudo nano /etc/sysctl.conf

# 添加网络相关参数
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_tw_buckets = 600000
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.netdev_max_backlog = 50000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 1024 65535

# 使配置生效
sudo sysctl -p

2. 防火墙配置

# 开放分布式数据库常用端口
sudo ufw allow 2379/tcp  # etcd
sudo ufw allow 2380/tcp
sudo ufw allow 5432/tcp  # PostgreSQL
sudo ufw allow 27017/tcp # MongoDB
sudo ufw allow 9042/tcp  # Cassandra
sudo ufw allow 2181/tcp  # ZooKeeper
sudo ufw allow 9092/tcp  # Kafka
sudo ufw allow 3306/tcp  # MySQL

存储配置

1. 文件系统选择

推荐使用XFS或ext4文件系统:

# 查看当前文件系统
df -Th

# 如果是新分区,建议格式化为XFS
sudo mkfs.xfs /dev/sdX

2. 挂载选项优化

# 编辑/etc/fstab
sudo nano /etc/fstab

# 添加noatime,nodiratime选项
/dev/sdX /data xfs defaults,noatime,nodiratime,nobarrier 0 0

3. I/O调度器设置

# 查看当前调度器
cat /sys/block/sdX/queue/scheduler

# 设置为deadline或noop
echo deadline > /sys/block/sdX/queue/scheduler

# 永久设置
sudo nano /etc/rc.local
echo deadline > /sys/block/sdX/queue/scheduler

分布式数据库特定组件安装

1. Java环境(适用于HBase, Cassandra, Kafka等)

sudo apt update
sudo apt install -y openjdk-11-jdk

# 设置JAVA_HOME
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" >> ~/.bashrc
source ~/.bashrc

2. Python环境

sudo apt install -y python3 python3-pip python3-venv

3. Docker容器支持

# 安装Docker
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker

# 将当前用户加入docker组
sudo usermod -aG docker $USER
newgrp docker

监控与维护工具

1. 系统监控工具

sudo apt install -y htop iotop iftop nmon sysstat dstat

2. 网络诊断工具

sudo apt install -y net-tools traceroute tcpdump nmap

3. 日志管理

sudo apt install -y logrotate

集群时间同步(NTP)

sudo apt install -y chrony
sudo systemctl enable --now chronyd

# 检查同步状态
chronyc sources -v
chronyc tracking

安全配置

1. SSH加固

sudo nano /etc/ssh/sshd_config

# 修改以下参数
PermitRootLogin no
PasswordAuthentication no
X11Forwarding no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2

# 重启SSH服务
sudo systemctl restart sshd

2. 定期更新

# 设置自动安全更新
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

分布式数据库特定配置示例

1. 为MongoDB配置

# 创建专用用户和目录
sudo useradd --system --no-create-home --shell /bin/false mongodb
sudo mkdir -p /data/db
sudo chown -R mongodb:mongodb /data/db

# 编辑limits.conf增加mongodb用户限制
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodb soft nproc 64000
mongodb hard nproc 64000

2. 为PostgreSQL配置

# 创建专用用户和目录
sudo sh -c 'echo "postgresql - nofile 65536" >> /etc/security/limits.conf'
sudo mkdir -p /var/lib/postgresql/data
sudo chown postgres:postgres /var/lib/postgresql/data

性能测试工具

# 安装常用基准测试工具
sudo apt install -y sysbench fio iperf3

以上配置为通用性建议,具体参数应根据实际硬件配置、数据库类型和业务需求进行调整。在正式环境部署前,建议在测试环境中验证这些配置的适用性。