活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

openSUSE Tumbleweed高性能服务器配置与优化实战

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-23 13:10:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

openSUSE Tumbleweed作为一款滚动发布的Linux发行版,以其稳定性和软件包的及时更新而闻名。对于追求高性能的服务器环境而言,Tumbleweed提供了最新的内核和软件栈,为服务器优化提供了广阔的空间。本文将详细介绍如何配置和优化openSUSE Tumbleweed服务器,以实现最佳性能。

系统安装与基础配置

安装准备

在开始安装openSUSE Tumbleweed之前,需要做好以下准备工作:

1. 确保服务器硬件满足需求,并检查硬件兼容性
2. 下载最新的openSUSE Tumbleweed网络安装镜像
3. 准备安装介质(USB启动盘或光盘)

安装过程

安装openSUSE Tumbleweed时,需要注意以下几点以优化服务器性能:

1. 选择最小安装模式,避免不必要的软件包占用系统资源
2. 合理分区方案,建议使用以下布局:/boot分区:500MB-1GBswap分区:根据内存大小设置,通常为内存的1-2倍/根分区:至少20GB/home分区:剩余空间/var分区:如果服务器将运行大量服务,建议单独分区
3. /boot分区:500MB-1GB
4. swap分区:根据内存大小设置,通常为内存的1-2倍
5. /根分区:至少20GB
6. /home分区:剩余空间
7. /var分区:如果服务器将运行大量服务,建议单独分区
8. 选择合适的文件系统,XFS适合大文件和高并发场景,Btrfs提供快照和压缩功能

选择最小安装模式,避免不必要的软件包占用系统资源

合理分区方案,建议使用以下布局:

• /boot分区:500MB-1GB
• swap分区:根据内存大小设置,通常为内存的1-2倍
• /根分区:至少20GB
• /home分区:剩余空间
• /var分区:如果服务器将运行大量服务,建议单独分区

选择合适的文件系统,XFS适合大文件和高并发场景,Btrfs提供快照和压缩功能

安装后基础配置

安装完成后,进行以下基础配置:
  1. # 更新系统到最新状态
  2. sudo zypper refresh
  3. sudo zypper update
  4. # 安装常用工具
  5. sudo zypper install -t pattern devel_basis
  6. sudo zypper install vim htop iotop iftop nmap sysstat
  7. # 配置时区
  8. sudo timedatectl set-timezone Asia/Shanghai
  9. # 配置NTP同步
  10. sudo zypper install ntp
  11. sudo systemctl enable ntpd
  12. sudo systemctl start ntpd
  13. # 配置主机名
  14. sudo hostnamectl set-hostname your-server-name
复制代码

内核参数调优

选择合适的内核

openSUSE Tumbleweed默认使用最新的稳定内核,但针对特定服务器场景,可以考虑以下选项:
  1. # 查看当前内核版本
  2. uname -r
  3. # 如果需要,可以安装其他内核版本
  4. sudo zypper search kernel
  5. sudo zypper install kernel-default  # 默认内核
  6. sudo zypper install kernel-preempt   # 低延迟内核,适合桌面和实时应用
  7. sudo zypper install kernel-vanilla   # 原生内核,无额外补丁
复制代码

内核参数优化

通过修改/etc/sysctl.conf文件或创建新的配置文件在/etc/sysctl.d/目录下来优化内核参数:
  1. # 创建自定义内核参数配置文件
  2. sudo vim /etc/sysctl.d/99-server-tuning.conf
复制代码

添加以下内容:
  1. # 增加文件描述符限制
  2. fs.file-max = 1000000
  3. # 网络栈优化
  4. net.core.rmem_max = 16777216
  5. net.core.wmem_max = 16777216
  6. net.ipv4.tcp_rmem = 4096 87380 16777216
  7. net.ipv4.tcp_wmem = 4096 65536 16777216
  8. net.ipv4.tcp_fin_timeout = 30
  9. net.ipv4.tcp_keepalive_time = 1200
  10. net.ipv4.tcp_max_syn_backlog = 65536
  11. net.core.netdev_max_backlog = 65536
  12. # 虚拟内存优化
  13. vm.swappiness = 10
  14. vm.dirty_ratio = 60
  15. vm.dirty_background_ratio = 2
  16. # 避免ARP表溢出
  17. net.ipv4.neigh.default.gc_thresh1 = 1024
  18. net.ipv4.neigh.default.gc_thresh2 = 2048
  19. net.ipv4.neigh.default.gc_thresh3 = 4096
复制代码

应用配置:
  1. sudo sysctl -p /etc/sysctl.d/99-server-tuning.conf
复制代码

启用BFQ I/O调度器

BFQ (Budget Fair Queueing) I/O调度器适合服务器环境,特别是在交互式应用和实时任务方面表现出色:
  1. # 查看当前可用的I/O调度器
  2. cat /sys/block/sda/queue/scheduler
  3. # 临时设置BFQ调度器
  4. echo bfq > /sys/block/sda/queue/scheduler
  5. # 永久设置,创建udev规则
  6. sudo vim /etc/udev/rules.d/60-io_scheduler.rules
复制代码

添加以下内容:
  1. ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="bfq"
复制代码

文件系统优化

选择合适的文件系统

openSUSE Tumbleweed支持多种文件系统,各有优劣:

1. XFS:适合大文件和高并发场景,广泛用于企业服务器
2. Btrfs:提供快照、压缩、校验等高级功能,适合需要数据完整性和灵活性的场景
3. Ext4:稳定可靠,适合通用服务器场景

文件系统挂载优化

在/etc/fstab中添加挂载选项以优化文件系统性能:
  1. # 示例XFS文件系统挂载选项
  2. /dev/sda1  /data  xfs  defaults,noatime,nodiratime,largeio,inode64,logbufs=8,logbsize=256k  0  0
  3. # 示例Btrfs文件系统挂载选项
  4. /dev/sda2  /backup  btrfs  defaults,noatime,nodiratime,compress=lzo,space_cache  0  0
复制代码

选项说明:

• noatime和nodiratime:禁用访问时间更新,减少磁盘I/O
• largeio:优化大文件操作
• inode64:启用64位inode,支持大量文件
• logbufs和logbsize:调整日志缓冲区大小,提高事务性能
• compress=lzo:启用LZO压缩,平衡压缩率和CPU使用

文件系统调优工具

使用XFS文件系统的调优工具:
  1. # 安装XFS工具
  2. sudo zypper install xfsprogs
  3. # 调整XFS文件系统参数
  4. sudo xfs_io -c "extsize 4m" /mount/point
复制代码

使用Btrfs文件系统的调优工具:
  1. # 安装Btrfs工具
  2. sudo zypper install btrfsprogs
  3. # 启用压缩
  4. sudo btrfs filesystem defrag -r -clzo /mount/point
  5. # 查看文件系统状态
  6. sudo btrfs filesystem df /mount/point
复制代码

网络性能优化

网络接口配置

优化网络接口配置:
  1. # 查看网络接口
  2. ip addr show
  3. # 配置网络接口,编辑配置文件
  4. sudo vim /etc/sysconfig/network/ifcfg-eth0
复制代码

示例配置:
  1. BOOTPROTO='static'
  2. IPADDR='192.168.1.100/24'
  3. GATEWAY='192.168.1.1'
  4. DNS1='8.8.8.8'
  5. DNS2='8.8.4.4'
  6. STARTMODE='auto'
  7. MTU='9000'  # 如果网络支持Jumbo Frames
  8. ETHTOOL_OPTIONS='-G eth0 rx 4096 tx 4096'  # 调整环形缓冲区大小
复制代码

网络内核参数优化

创建网络优化配置文件:
  1. sudo vim /etc/sysctl.d/99-network-tuning.conf
复制代码

添加以下内容:
  1. # TCP优化
  2. net.ipv4.tcp_low_latency = 1
  3. net.ipv4.tcp_fastopen = 3
  4. net.ipv4.tcp_congestion_control = bbr  # 使用BBR拥塞控制算法
  5. # 网络队列优化
  6. net.core.netdev_budget = 600
  7. net.core.netdev_budget_usecs = 8000
  8. # 增加网络缓冲区大小
  9. net.core.rmem_default = 16777216
  10. net.core.wmem_default = 16777216
  11. net.ipv4.udp_rmem_min = 8192
  12. net.ipv4.udp_wmem_min = 8192
复制代码

应用配置:
  1. sudo sysctl -p /etc/sysctl.d/99-network-tuning.conf
复制代码

启用BBR拥塞控制算法

BBR (Bottleneck Bandwidth and RTT) 是Google开发的拥塞控制算法,可以有效提高网络吞吐量并降低延迟:
  1. # 检查内核是否支持BBR
  2. modinfo tcp_bbr
  3. # 临时启用
  4. sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
  5. # 永久启用
  6. echo "net.ipv4.tcp_congestion_control = bbr" | sudo tee -a /etc/sysctl.d/99-network-tuning.conf
  7. sudo sysctl -p /etc/sysctl.d/99-network-tuning.conf
复制代码

网络中断亲和性

优化网络中断处理,将中断绑定到特定CPU核心:
  1. # 安装irqbalance
  2. sudo zypper install irqbalance
  3. sudo systemctl enable irqbalance
  4. sudo systemctl start irqbalance
  5. # 手动设置网络中断亲和性
  6. # 首先查看网络接口的中断号
  7. cat /proc/interrupts | grep eth
  8. # 设置中断亲和性到特定CPU核心
  9. echo 1 > /proc/irq/123/smp_affinity
复制代码

内存管理与优化

内存分配策略

优化内存分配策略:
  1. # 编辑sysctl配置
  2. sudo vim /etc/sysctl.d/99-memory-tuning.conf
复制代码

添加以下内容:
  1. # 虚拟内存优化
  2. vm.swappiness = 10
  3. vm.dirty_ratio = 60
  4. vm.dirty_background_ratio = 2
  5. vm.vfs_cache_pressure = 50
  6. # 内存分配策略
  7. vm.zone_reclaim_mode = 0
  8. vm.min_free_kbytes = 65536
  9. # 巨页内存配置,适用于数据库等应用
  10. vm.nr_hugepages = 1024
  11. vm.hugetlb_shm_group = 1000
复制代码

应用配置:
  1. sudo sysctl -p /etc/sysctl.d/99-memory-tuning.conf
复制代码

透明大页配置

透明大页(Transparent Huge Pages, THP)可以减少TLB Miss,提高内存访问效率,但在某些应用场景下可能导致性能问题:
  1. # 临时禁用THP
  2. echo never > /sys/kernel/mm/transparent_hugepage/enabled
  3. echo never > /sys/kernel/mm/transparent_hugepage/defrag
  4. # 永久禁用THP
  5. echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" | sudo tee -a /etc/rc.local
  6. echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" | sudo tee -a /etc/rc.local
  7. sudo chmod +x /etc/rc.local
  8. sudo systemctl enable rc-local
复制代码

内存限制与控制组(cgroups)

使用cgroups限制和管理资源:
  1. # 安装cgroup工具
  2. sudo zypper install libcgroup-tools
  3. # 创建cgroup
  4. sudo cgcreate -g memory,cpu:/server_app
  5. # 设置内存限制
  6. echo 4G > /sys/fs/cgroup/memory/server_app/memory.limit_in_bytes
  7. echo 4G > /sys/fs/cgroup/memory/server_app/memory.memsw.limit_in_bytes
  8. # 设置CPU限制
  9. echo 500 > /sys/fs/cgroup/cpu/server_app/cpu.cfs_quota_us
  10. echo 100000 > /sys/fs/cgroup/cpu/server_app/cpu.cfs_period_us
  11. # 启动应用并加入cgroup
  12. cgexec -g memory,cpu:server_app /path/to/your/application
复制代码

CPU性能优化

CPU调度器优化

优化CPU调度器:
  1. # 编辑sysctl配置
  2. sudo vim /etc/sysctl.d/99-cpu-tuning.conf
复制代码

添加以下内容:
  1. # CPU调度器优化
  2. kernel.sched_min_granularity_ns = 10000000
  3. kernel.sched_wakeup_granularity_ns = 15000000
  4. kernel.sched_migration_cost_ns = 500000
  5. kernel.sched_nr_migrate = 32
  6. # CPU频率调节
  7. # 使用性能模式
  8. echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
复制代码

应用配置:
  1. sudo sysctl -p /etc/sysctl.d/99-cpu-tuning.conf
复制代码

CPU频率调节

配置CPU频率调节策略:
  1. # 安装CPU频率调节工具
  2. sudo zypper install cpupower
  3. # 查看可用调节器
  4. cpupower frequency-info
  5. # 设置为性能模式
  6. sudo cpupower frequency-set -g performance
  7. # 查看CPU信息
  8. sudo cpupower info
复制代码

CPU亲和性设置

设置进程CPU亲和性,优化缓存利用率:
  1. # 安装taskset工具
  2. sudo zypper install util-linux
  3. # 启动应用时指定CPU亲和性
  4. taskset -c 0,1,2,3 /path/to/application
  5. # 修改运行中进程的CPU亲和性
  6. taskset -cp 0,1,2,3 <PID>
  7. # 使用numactl优化NUMA系统
  8. sudo zypper install numactl
  9. # 在NUMA节点0上启动应用
  10. numactl --cpunodebind=0 --membind=0 /path/to/application
复制代码

服务特定优化

Web服务器优化
  1. # 安装Nginx
  2. sudo zypper install nginx
  3. # 配置Nginx
  4. sudo vim /etc/nginx/nginx.conf
复制代码

Nginx配置示例:
  1. user nginx;
  2. worker_processes auto;
  3. worker_rlimit_nofile 100000;
  4. error_log /var/log/nginx/error.log crit;
  5. pid /var/run/nginx.pid;
  6. events {
  7.     worker_connections 4096;
  8.     use epoll;
  9.     multi_accept on;
  10. }
  11. http {
  12.     include /etc/nginx/mime.types;
  13.     default_type application/octet-stream;
  14.     access_log off;
  15.     sendfile on;
  16.     tcp_nopush on;
  17.     tcp_nodelay on;
  18.     keepalive_timeout 30;
  19.     keepalive_requests 100000;
  20.     reset_timedout_connection on;
  21.     client_body_timeout 10;
  22.     send_timeout 2;
  23.     # Gzip压缩
  24.     gzip on;
  25.     gzip_disable "msie6";
  26.     gzip_vary on;
  27.     gzip_proxied any;
  28.     gzip_comp_level 6;
  29.     gzip_min_length 1000;
  30.     gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
  31.     # 缓存配置
  32.     open_file_cache max=200000 inactive=20s;
  33.     open_file_cache_valid 30s;
  34.     open_file_cache_min_uses 2;
  35.     open_file_cache_errors on;
  36.     include /etc/nginx/conf.d/*.conf;
  37. }
复制代码

启动Nginx:
  1. sudo systemctl enable nginx
  2. sudo systemctl start nginx
复制代码
  1. # 安装Apache
  2. sudo zypper install apache2
  3. # 配置Apache
  4. sudo vim /etc/apache2/server-tuning.conf
复制代码

Apache配置示例:
  1. <IfModule mpm_prefork_module>
  2.     StartServers 5
  3.     MinSpareServers 5
  4.     MaxSpareServers 10
  5.     MaxRequestWorkers 150
  6.     MaxConnectionsPerChild 0
  7. </IfModule>
  8. <IfModule mpm_worker_module>
  9.     StartServers 2
  10.     MinSpareThreads 25
  11.     MaxSpareThreads 75
  12.     ThreadsPerChild 25
  13.     MaxRequestWorkers 150
  14.     MaxConnectionsPerChild 0
  15. </IfModule>
  16. <IfModule mpm_event_module>
  17.     StartServers 2
  18.     MinSpareThreads 25
  19.     MaxSpareThreads 75
  20.     ThreadsPerChild 25
  21.     MaxRequestWorkers 150
  22.     MaxConnectionsPerChild 0
  23. </IfModule>
  24. KeepAlive On
  25. KeepAliveTimeout 5
  26. MaxKeepAliveRequests 100
  27. Timeout 30
  28. EnableSendfile On
  29. EnableMMAP Off
复制代码

启用配置并启动Apache:
  1. sudo a2enmod server-tuning
  2. sudo systemctl enable apache2
  3. sudo systemctl start apache2
复制代码

数据库优化
  1. # 安装MariaDB
  2. sudo zypper install mariadb mariadb-client
  3. # 配置MariaDB
  4. sudo vim /etc/my.cnf
复制代码

MariaDB配置示例:
  1. [mysqld]
  2. # 基本设置
  3. datadir=/var/lib/mysql
  4. socket=/var/lib/mysql/mysql.sock
  5. user=mysql
  6. # InnoDB优化
  7. innodb_buffer_pool_size = 4G  # 设置为可用内存的50-70%
  8. innodb_log_file_size = 256M
  9. innodb_log_buffer_size = 8M
  10. innodb_flush_log_at_trx_commit = 2
  11. innodb_flush_method = O_DIRECT
  12. innodb_file_per_table = 1
  13. innodb_buffer_pool_instances = 4
  14. # MyISAM优化
  15. key_buffer_size = 256M
  16. myisam_sort_buffer_size = 64M
  17. read_buffer_size = 2M
  18. write_buffer_size = 2M
  19. # 连接设置
  20. max_connections = 200
  21. max_connect_errors = 100000
  22. connect_timeout = 10
  23. wait_timeout = 28800
  24. # 查询缓存
  25. query_cache_type = 1
  26. query_cache_size = 128M
  27. query_cache_limit = 2M
  28. # 其他优化
  29. tmp_table_size = 64M
  30. max_heap_table_size = 64M
  31. thread_cache_size = 8
  32. table_open_cache = 1024
  33. sort_buffer_size = 2M
  34. read_rnd_buffer_size = 1M
  35. join_buffer_size = 1M
  36. # 日志设置
  37. slow_query_log = 1
  38. slow_query_log_file = /var/log/mysql/slow.log
  39. long_query_time = 2
  40. log_queries_not_using_indexes = 1
复制代码

启动MariaDB:
  1. sudo systemctl enable mariadb
  2. sudo systemctl start mariadb
  3. sudo mysql_secure_installation
复制代码
  1. # 安装PostgreSQL
  2. sudo zypper install postgresql postgresql-server postgresql-contrib
  3. # 初始化数据库
  4. sudo systemctl initdb postgresql
  5. # 配置PostgreSQL
  6. sudo vim /var/lib/pgsql/data/postgresql.conf
复制代码

PostgreSQL配置示例:
  1. # 连接设置
  2. max_connections = 100
  3. superuser_reserved_connections = 3
  4. # 内存设置
  5. shared_buffers = 1GB  # 设置为可用内存的25%
  6. effective_cache_size = 4GB  # 设置为可用内存的50-75%
  7. work_mem = 16MB
  8. maintenance_work_mem = 256MB
  9. # 检查点设置
  10. checkpoint_segments = 32
  11. checkpoint_timeout = 15min
  12. checkpoint_completion_target = 0.9
  13. # 日志设置
  14. logging_collector = on
  15. log_directory = 'pg_log'
  16. log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
  17. log_statement = 'none'
  18. log_duration = on
  19. log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d '
  20. # 查询优化
  21. random_page_cost = 2.0
  22. effective_io_concurrency = 200
  23. # 自定义统计信息
  24. default_statistics_target = 100
复制代码

启动PostgreSQL:
  1. sudo systemctl enable postgresql
  2. sudo systemctl start postgresql
复制代码

缓存服务器优化
  1. # 安装Redis
  2. sudo zypper install redis
  3. # 配置Redis
  4. sudo vim /etc/redis/redis.conf
复制代码

Redis配置示例:
  1. # 内存设置
  2. maxmemory 2gb
  3. maxmemory-policy allkeys-lru
  4. # 持久化设置
  5. save 900 1
  6. save 300 10
  7. save 60 10000
  8. stop-writes-on-bgsave-error yes
  9. rdbcompression yes
  10. rdbchecksum yes
  11. # AOF设置
  12. appendonly yes
  13. appendfilename "appendonly.aof"
  14. appendfsync everysec
  15. no-appendfsync-on-rewrite no
  16. auto-aof-rewrite-percentage 100
  17. auto-aof-rewrite-min-size 64mb
  18. # 网络设置
  19. tcp-backlog 511
  20. timeout 0
  21. tcp-keepalive 0
  22. # 日志设置
  23. loglevel notice
  24. logfile ""
  25. # 慢查询日志
  26. slowlog-log-slower-than 10000
  27. slowlog-max-len 128
  28. # 客户端设置
  29. maxclients 10000
复制代码

启动Redis:
  1. sudo systemctl enable redis
  2. sudo systemctl start redis
复制代码
  1. # 安装Memcached
  2. sudo zypper install memcached
  3. # 配置Memcached
  4. sudo vim /etc/sysconfig/memcached
复制代码

Memcached配置示例:
  1. PORT="11211"
  2. USER="memcached"
  3. MAXCONN="1024"
  4. CACHESIZE="2048"
  5. OPTIONS="-l 0.0.0.0 -t 8 -c 2048 -m 2048"
复制代码

启动Memcached:
  1. sudo systemctl enable memcached
  2. sudo systemctl start memcached
复制代码

安全性配置与性能平衡

防火墙配置

配置防火墙以平衡安全性和性能:
  1. # 安装并启动firewalld
  2. sudo zypper install firewalld
  3. sudo systemctl enable firewalld
  4. sudo systemctl start firewalld
  5. # 配置防火墙规则
  6. sudo firewall-cmd --permanent --add-service=ssh
  7. sudo firewall-cmd --permanent --add-service=http
  8. sudo firewall-cmd --permanent --add-service=https
  9. sudo firewall-cmd --reload
  10. # 优化iptables性能(如果使用iptables)
  11. sudo vim /etc/sysconfig/iptables
复制代码

添加以下规则以优化性能:
  1. # 提高连接跟踪性能
  2. -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  3. # 限制SYN洪水攻击
  4. -A INPUT -p tcp --syn -m connlimit --connlimit-above 50 -j DROP
  5. # 限制ICMP请求
  6. -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT
  7. -A INPUT -p icmp --icmp-type echo-request -j DROP
复制代码

SSH安全配置

优化SSH配置以提高安全性:
  1. # 编辑SSH配置
  2. sudo vim /etc/ssh/sshd_config
复制代码

修改以下设置:
  1. # 禁用root登录
  2. PermitRootLogin no
  3. # 使用SSH协议2
  4. Protocol 2
  5. # 禁用密码认证,使用密钥认证
  6. PasswordAuthentication no
  7. PubkeyAuthentication yes
  8. # 更改默认端口
  9. Port 2222
  10. # 限制用户
  11. AllowUsers user1 user2
  12. # 设置登录超时
  13. LoginGraceTime 60
  14. ClientAliveInterval 300
  15. ClientAliveCountMax 0
  16. # 使用更强的加密算法
  17. Ciphers chacha20-poly1305@openssl.com,aes256-gcm@openssl.com,aes128-gcm@openssl.com,aes256-ctr,aes192-ctr,aes128-ctr
  18. MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
  19. KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
复制代码

重启SSH服务:
  1. sudo systemctl restart sshd
复制代码

系统安全加固

使用安全加固工具:
  1. # 安装安全工具
  2. sudo zypper install hardening checksec
  3. # 运行安全检查
  4. sudo hardening --check
  5. # 配置安全策略
  6. sudo vim /etc/security/pwquality.conf
复制代码

添加以下设置:
  1. minlen = 12
  2. minclass = 4
  3. dcredit = -1
  4. ucredit = -1
  5. lcredit = -1
  6. ocredit = -1
  7. maxrepeat = 3
  8. maxsequence = 3
  9. dictcheck = 1
  10. enforce_for_root
复制代码

配置登录限制:
  1. sudo vim /etc/security/limits.conf
复制代码

添加以下设置:
  1. * soft nofile 65536
  2. * hard nofile 65536
  3. * soft nproc 4096
  4. * hard nproc 8192
  5. * soft memlock unlimited
  6. * hard memlock unlimited
复制代码

监控与性能分析

系统监控工具安装与配置

安装系统监控工具:
  1. # 安装基础监控工具
  2. sudo zypper install htop iotop iftop nethogs sysstat vmstat
  3. # 安装高级监控工具
  4. sudo zypper install dstat ncdu smem
  5. # 安装网络监控工具
  6. sudo zypper install nmap tcpdump wireshark
  7. # 启用sysstat收集系统统计信息
  8. sudo systemctl enable sysstat
  9. sudo systemctl start sysstat
复制代码

性能分析工具使用

使用perf进行性能分析:
  1. # 安装perf
  2. sudo zypper install perf
  3. # 记录系统性能数据
  4. sudo perf record -a
  5. # 分析性能数据
  6. sudo perf report
  7. # 查看CPU使用情况
  8. sudo perf top
  9. # 分析特定进程
  10. sudo perf stat -p <PID>
复制代码

使用eBPF工具进行性能分析:
  1. # 安装BCC工具包
  2. sudo zypper install bcc-tools
  3. # 使用execsnoop跟踪进程创建
  4. sudo /usr/share/bcc/tools/execsnoop
  5. # 使用opensnoop跟踪文件打开
  6. sudo /usr/share/bcc/tools/opensnoop
  7. # 使用biolatency跟踪块设备I/O延迟
  8. sudo /usr/share/bcc/tools/biolatency
复制代码

日志分析配置

配置集中式日志分析:
  1. # 安装ELK栈组件
  2. sudo zypper install elasticsearch logstash kibana
  3. # 配置Elasticsearch
  4. sudo vim /etc/elasticsearch/elasticsearch.yml
复制代码

Elasticsearch配置示例:
  1. cluster.name: my-application
  2. node.name: node-1
  3. path.data: /var/lib/elasticsearch
  4. path.logs: /var/log/elasticsearch
  5. network.host: 0.0.0.0
  6. http.port: 9200
  7. discovery.type: single-node
复制代码

启动Elasticsearch:
  1. sudo systemctl enable elasticsearch
  2. sudo systemctl start elasticsearch
复制代码

配置Logstash:
  1. sudo vim /etc/logstash/conf.d/02-beats-input.conf
复制代码

添加以下内容:
  1. input {
  2.   beats {
  3.     port => 5044
  4.   }
  5. }
  6. output {
  7.   elasticsearch {
  8.     hosts => ["localhost:9200"]
  9.     index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  10.   }
  11. }
复制代码

启动Logstash:
  1. sudo systemctl enable logstash
  2. sudo systemctl start logstash
复制代码

配置Kibana:
  1. sudo vim /etc/kibana/kibana.yml
复制代码

修改以下设置:
  1. server.port: 5601
  2. server.host: "0.0.0.0"
  3. elasticsearch.hosts: ["http://localhost:9200"]
复制代码

启动Kibana:
  1. sudo systemctl enable kibana
  2. sudo systemctl start kibana
复制代码

性能监控脚本

创建自定义性能监控脚本:
  1. # 创建监控脚本
  2. sudo vim /usr/local/bin/server-monitor.sh
复制代码

添加以下内容:
  1. #!/bin/bash
  2. # 监控间隔(秒)
  3. INTERVAL=5
  4. # 日志文件
  5. LOG_FILE="/var/log/server-monitor.log"
  6. # 创建日志目录
  7. mkdir -p $(dirname $LOG_FILE)
  8. # 监控函数
  9. monitor() {
  10.     echo "===== $(date) =====" >> $LOG_FILE
  11.    
  12.     # CPU使用率
  13.     echo "CPU Usage:" >> $LOG_FILE
  14.     top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}' >> $LOG_FILE
  15.    
  16.     # 内存使用情况
  17.     echo "Memory Usage:" >> $LOG_FILE
  18.     free -h >> $LOG_FILE
  19.    
  20.     # 磁盘使用情况
  21.     echo "Disk Usage:" >> $LOG_FILE
  22.     df -h >> $LOG_FILE
  23.    
  24.     # 网络连接数
  25.     echo "Network Connections:" >> $LOG_FILE
  26.     netstat -an | wc -l >> $LOG_FILE
  27.    
  28.     # 系统负载
  29.     echo "System Load:" >> $LOG_FILE
  30.     uptime >> $LOG_FILE
  31.    
  32.     echo "" >> $LOG_FILE
  33. }
  34. # 主循环
  35. while true; do
  36.     monitor
  37.     sleep $INTERVAL
  38. done
复制代码

设置脚本可执行并启动:
  1. sudo chmod +x /usr/local/bin/server-monitor.sh
  2. # 创建systemd服务
  3. sudo vim /etc/systemd/system/server-monitor.service
复制代码

添加以下内容:
  1. [Unit]
  2. Description=Server Monitoring Service
  3. After=network.target
  4. [Service]
  5. ExecStart=/usr/local/bin/server-monitor.sh
  6. Restart=always
  7. User=root
  8. Group=root
  9. [Install]
  10. WantedBy=multi-user.target
复制代码

启动服务:
  1. sudo systemctl daemon-reload
  2. sudo systemctl enable server-monitor
  3. sudo systemctl start server-monitor
复制代码

总结与最佳实践

性能优化总结

openSUSE Tumbleweed作为服务器操作系统,通过合理的配置和优化可以发挥出色的性能。本文从系统安装、内核调优、文件系统优化、网络优化、内存管理、CPU优化、服务特定优化、安全配置和监控等方面详细介绍了高性能服务器配置与优化的方法。

最佳实践建议

1. 基准测试:在进行任何优化之前,先进行基准测试,建立性能基线。
2. 渐进式优化:一次只进行一项优化,然后测试效果,避免同时进行多项优化导致问题难以定位。
3. 监控与记录:持续监控系统性能,记录优化前后的变化。
4. 平衡性能与稳定性:不要为了追求极致性能而牺牲系统稳定性。
5. 定期更新:openSUSE Tumbleweed是滚动发布版本,定期更新系统以获取最新的性能改进和安全补丁。

常见问题与解决方案

1. 高负载问题:使用top或htop识别占用资源最多的进程分析系统日志,查找异常检查硬件故障
2. 使用top或htop识别占用资源最多的进程
3. 分析系统日志,查找异常
4. 检查硬件故障
5. 内存不足问题:调整vm.swappiness参数优化应用程序内存使用考虑增加物理内存
6. 调整vm.swappiness参数
7. 优化应用程序内存使用
8. 考虑增加物理内存
9. 磁盘I/O瓶颈:使用iotop识别I/O密集型进程考虑使用更快的存储设备(SSD)优化文件系统参数
10. 使用iotop识别I/O密集型进程
11. 考虑使用更快的存储设备(SSD)
12. 优化文件系统参数
13. 网络性能问题:使用iftop或nethogs分析网络流量检查网络硬件和驱动程序优化网络内核参数
14. 使用iftop或nethogs分析网络流量
15. 检查网络硬件和驱动程序
16. 优化网络内核参数

高负载问题:

• 使用top或htop识别占用资源最多的进程
• 分析系统日志,查找异常
• 检查硬件故障

内存不足问题:

• 调整vm.swappiness参数
• 优化应用程序内存使用
• 考虑增加物理内存

磁盘I/O瓶颈:

• 使用iotop识别I/O密集型进程
• 考虑使用更快的存储设备(SSD)
• 优化文件系统参数

网络性能问题:

• 使用iftop或nethogs分析网络流量
• 检查网络硬件和驱动程序
• 优化网络内核参数

通过以上配置和优化,openSUSE Tumbleweed服务器可以提供高性能、高可靠性的服务,满足各种应用场景的需求。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则