|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
引言
Gentoo Linux以其高度的自定义性和优化潜力而闻名,是追求极致性能用户的理想选择。作为一款源码发行版,Gentoo允许用户从源代码编译整个系统,这意味着每一行代码都可以针对特定硬件进行优化。本指南将全面介绍如何通过各种技术手段提升Gentoo系统的性能,包括编译优化、内核调优和服务配置等方面,帮助您打造一个高效、稳定且个性化的Linux运行环境。
Gentoo系统基础
Gentoo Linux的核心是Portage包管理系统,它负责处理软件包的编译、安装和依赖关系。与二进制发行版不同,Gentoo用户可以精确控制每个软件包的编译选项,这为系统优化提供了无与伦比的灵活性。
Portage的主要配置文件位于/etc/portage/目录下,包括:
• make.conf:全局编译设置
• package.use:针对特定软件包的USE标志设置
• package.keywords:关键词设置(用于接受不稳定版本)
• package.mask/package.unmask:屏蔽或解除屏蔽特定版本
理解这些配置文件的作用是进行系统优化的第一步。
编译优化
USE标志优化
USE标志是Gentoo系统优化的核心,它们决定了软件包编译时包含哪些功能和依赖。合理设置USE标志可以显著减少系统资源占用,提高运行效率。
首先,检查系统当前的USE标志设置:
编辑/etc/portage/make.conf文件,根据您的需求定制USE标志。例如,对于一个桌面系统,您可能需要:
- # /etc/portage/make.conf
- USE="X alsa bluetooth dbus gtk3 pulseaudio systemd -kde -gnome -qt5"
复制代码
对于服务器系统,则可能是:
- # /etc/portage/make.conf
- USE="-X -alsa -bluetooth -dbus -gtk3 -pulseaudio -systemd apache2 mysql php"
复制代码
您还可以为特定软件包设置USE标志。创建或编辑/etc/portage/package.use文件:
- # /etc/portage/package.use
- # 为Firefox启用硬件加速和Jack音频支持
- www-client/firefox hwaccel jack
- # 为Nginx启用HTTP/2和线程支持
- www-servers/nginx http2 threads
复制代码
CFLAGS/CXXFLAGS设置
CFLAGS和CXXFLAGS控制C和C++代码的编译选项,直接影响生成代码的性能。合理的设置可以显著提升系统性能。
在/etc/portage/make.conf中设置:
- # /etc/portage/make.conf
- # 通用优化设置
- CFLAGS="-O2 -pipe -march=native"
- CXXFLAGS="${CFLAGS}"
- # 更激进的优化(可能影响稳定性)
- # CFLAGS="-O3 -pipe -march=native -fomit-frame-pointer -funroll-loops"
- # CXXFLAGS="${CFLAGS}"
复制代码
参数解释:
• -O2:标准优化级别,平衡性能和稳定性
• -O3:更激进的优化,可能提高性能但降低稳定性
• -pipe:使用管道而不是临时文件进行编译阶段间通信,加快编译速度
• -march=native:针对当前CPU架构进行优化
• -fomit-frame-pointer:省略帧指针,释放一个寄存器,可能影响调试
• -funroll-loops:展开循环,可能提高性能但增加二进制大小
要确定最适合您CPU的-march值,可以运行:
- gcc -march=native -Q --help=target | grep march
复制代码
MAKEOPTS配置
MAKEOPTS控制并行编译的进程数,合理设置可以大幅缩短编译时间。
在/etc/portage/make.conf中设置:
- # /etc/portage/make.conf
- # 通常设置为CPU核心数+1
- MAKEOPTS="-j5"
复制代码
要确定系统CPU核心数,可以运行:
针对特定CPU的优化
Gentoo允许您针对特定CPU架构进行深度优化。例如,对于Intel CPU,可以添加以下标志:
- # /etc/portage/make.conf
- # Intel CPU优化
- CFLAGS="-O2 -pipe -march=native -msse4.2 -mpopcnt -mavx -mavx2"
- CXXFLAGS="${CFLAGS}"
复制代码
对于AMD CPU:
- # /etc/portage/make.conf
- # AMD CPU优化
- CFLAGS="-O2 -pipe -march=native -msse4a -m3dnow -mavx -mavx2"
- CXXFLAGS="${CFLAGS}"
复制代码
编译时间与运行时性能的平衡
虽然激进的编译选项可以提高运行时性能,但也会增加编译时间和系统资源消耗。以下是一些平衡建议:
1. 对于关键性能软件(如数据库、Web服务器),使用更激进的优化
2. 对于不常用的软件,使用标准优化
3. 使用ccache缓存编译结果,加速重复编译
安装ccache:
- emerge --ask dev-util/ccache
复制代码
在/etc/portage/make.conf中启用:
- # /etc/portage/make.conf
- FEATURES="ccache"
- CCACHE_SIZE="5G"
复制代码
内核调优
内核配置优化
Gentoo允许用户完全自定义内核配置,这是系统优化的关键环节。使用genkernel或手动配置内核:
- # 安装内核源码
- emerge --ask sys-kernel/gentoo-sources
- # 进入源码目录
- cd /usr/src/linux
- # 使用make menuconfig进行图形化配置
- make menuconfig
复制代码
关键优化选项:
1. 处理器类型和特性:启用Processor family并选择您的CPU类型启用Preemption Model并选择Preemptible Kernel (Low-Latency Desktop)以获得更好的响应性启用Tickless System (Dynamic Ticks)以减少功耗
2. 启用Processor family并选择您的CPU类型
3. 启用Preemption Model并选择Preemptible Kernel (Low-Latency Desktop)以获得更好的响应性
4. 启用Tickless System (Dynamic Ticks)以减少功耗
5. 内存管理:启用Transparent Hugepage Support以提高大内存应用性能调整Kernel memory allocator,根据系统选择SLUB或SLAB
6. 启用Transparent Hugepage Support以提高大内存应用性能
7. 调整Kernel memory allocator,根据系统选择SLUB或SLAB
8. 文件系统:只启用您使用的文件系统支持,减少内核体积启用IO Schedulers并根据存储类型选择合适的调度器(SSD使用NOOP或Deadline,HDD使用CFQ或BFQ)
9. 只启用您使用的文件系统支持,减少内核体积
10. 启用IO Schedulers并根据存储类型选择合适的调度器(SSD使用NOOP或Deadline,HDD使用CFQ或BFQ)
11. 网络支持:启用TCP/IP networking根据需要启用高级网络功能如TCP advanced congestion control
12. 启用TCP/IP networking
13. 根据需要启用高级网络功能如TCP advanced congestion control
处理器类型和特性:
• 启用Processor family并选择您的CPU类型
• 启用Preemption Model并选择Preemptible Kernel (Low-Latency Desktop)以获得更好的响应性
• 启用Tickless System (Dynamic Ticks)以减少功耗
内存管理:
• 启用Transparent Hugepage Support以提高大内存应用性能
• 调整Kernel memory allocator,根据系统选择SLUB或SLAB
文件系统:
• 只启用您使用的文件系统支持,减少内核体积
• 启用IO Schedulers并根据存储类型选择合适的调度器(SSD使用NOOP或Deadline,HDD使用CFQ或BFQ)
网络支持:
• 启用TCP/IP networking
• 根据需要启用高级网络功能如TCP advanced congestion control
编译并安装内核:
- make && make modules_install
- make install
复制代码
内核参数调整
通过/etc/sysctl.conf文件调整内核运行时参数:
- # /etc/sysctl.conf
- # 虚拟内存管理
- vm.swappiness=10 # 减少交换倾向
- vm.vfs_cache_pressure=50 # 增加 inode/dentry 缓存
- vm.dirty_ratio=15 # 减少脏页比例
- vm.dirty_background_ratio=5 # 后台刷新脏页的比例
- # 网络参数优化
- net.core.rmem_max=16777216 # 最大接收套接字缓冲区
- net.core.wmem_max=16777216 # 最大发送套接字缓冲区
- net.ipv4.tcp_rmem="4096 87380 16777216" # TCP接收缓冲区
- net.ipv4.tcp_wmem="4096 65536 16777216" # TCP发送缓冲区
- net.ipv4.tcp_congestion_control=bbr # 使用BBR拥塞控制算法
- net.core.netdev_max_backlog=5000 # 网络设备接收队列最大长度
- # 文件系统优化
- fs.file-max=2097152 # 增加文件描述符限制
复制代码
应用这些设置:
实时内核补丁
对于需要低延迟的应用(如音频处理、实时控制系统),可以应用实时内核补丁:
- # 安装实时内核源码
- emerge --ask sys-kernel/rt-sources
- # 配置并编译实时内核
- cd /usr/src/linux-rt-*
- make menuconfig
- make && make modules_install
- make install
复制代码
在配置中,确保启用Preemption Model下的Fully Preemptible Kernel (RT)选项。
特定硬件的内核支持
针对特定硬件优化内核配置:
1. - NVMe SSD优化:Device Drivers --->
- NVME Support --->
- [*] NVMe block driver
- [*] NVMe multipath support
- [*] NVMe hardware monitoring
复制代码 2. - 网络硬件优化:Device Drivers --->
- Network device support --->
- [*] Ethernet driver support
- [*] Intel(R) PRO/1000 Gigabit Ethernet support
- [*] Realtek 8169 gigabit ethernet support
复制代码 3. - 图形硬件优化:Device Drivers --->
- Graphics support --->
- [*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
- [*] Intel 8xx/9xx/G3x/G4x/HD Graphics
- [*] Nouveau (NVIDIA) cards
- [*] ATI Radeon
复制代码
NVMe SSD优化:
- Device Drivers --->
- NVME Support --->
- [*] NVMe block driver
- [*] NVMe multipath support
- [*] NVMe hardware monitoring
复制代码
网络硬件优化:
- Device Drivers --->
- Network device support --->
- [*] Ethernet driver support
- [*] Intel(R) PRO/1000 Gigabit Ethernet support
- [*] Realtek 8169 gigabit ethernet support
复制代码
图形硬件优化:
- Device Drivers --->
- Graphics support --->
- [*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
- [*] Intel 8xx/9xx/G3x/G4x/HD Graphics
- [*] Nouveau (NVIDIA) cards
- [*] ATI Radeon
复制代码
服务配置
OpenRC优化
Gentoo默认使用OpenRC作为初始化系统,优化OpenRC可以提高系统启动速度和运行效率。
编辑/etc/rc.conf:
- # /etc/rc.conf
- # 并行启动服务
- rc_parallel="YES"
- # 热插拔服务管理
- rc_hotplug="YES"
- # 服务超时设置
- rc_start_wait=100
- rc_default_timeout=60
- # 减少启动信息
- rc_logger="NO"
复制代码
服务依赖管理
合理管理服务依赖关系可以避免不必要的等待,提高启动效率。
查看服务依赖:
调整服务依赖,编辑/etc/conf.d/<service>文件。例如,对于/etc/conf.d/nginx:
- # /etc/conf.d/nginx
- # 指定nginx需要网络和dns服务
- rc_need="net dns"
复制代码
启动项精简
减少不必要的服务启动可以释放系统资源,提高性能。
查看当前运行的服务:
移除不必要的服务:
- rc-update del <service> <runlevel>
复制代码
例如,移除蓝牙服务:
- rc-update del bluetooth default
复制代码
系统守护进程配置
优化关键系统守护进程的配置:
1. syslog-ng配置:
编辑/etc/syslog-ng/syslog-ng.conf:
“`bash/etc/syslog-ng/syslog-ng.conf
syslog-ng配置:
编辑/etc/syslog-ng/syslog-ng.conf:
“`bash
options {
- chain_hostnames(off);
- flush_lines(0);
- use_dns(no);
- use_fqdn(no);
- owner("root");
- group("adm");
- perm(0640);
- stats_freq(0);
- bad_hostname("^gconfd$");
复制代码
};
- 2. **cronie配置**:
- 编辑`/etc/conf.d/cronie`:
- ```bash
- # /etc/conf.d/cronie
-
- # 减少cron活动频率
- CRON_OPTS="-s"
复制代码
1. ssh配置:
编辑/etc/ssh/sshd_config:
“`bash/etc/ssh/sshd_config
ssh配置:
编辑/etc/ssh/sshd_config:
“`bash
# 禁用DNS反向解析
UseDNS no
# 提高连接速度
GSSAPIAuthentication no
- ## 文件系统优化
- ### 选择合适的文件系统
- Gentoo支持多种文件系统,选择合适的文件系统对性能至关重要:
- 1. **ext4**:稳定可靠,适合大多数用途
- 2. **btrfs**:高级功能如快照、压缩,适合现代系统
- 3. **xfs**:高性能,适合大文件和大容量存储
- 4. **f2fs**:专为闪存设备设计,适合SSD和eMMC
- 创建文件系统时的优化选项:
- ```bash
- # ext4优化
- mkfs.ext4 -L root /dev/sda1 -E stride=128,stripe-width=256
- # btrfs优化
- mkfs.btrfs -L root /dev/sda1 -d single -m single
- # xfs优化
- mkfs.xfs -L root /dev/sda1 -l size=128m
- # f2fs优化
- mkfs.f2fs -l root /dev/sda1 -O extra_attr,inode_checksum,sb_checksum,compression
复制代码
挂载选项优化
编辑/etc/fstab文件,添加优化的挂载选项:
- # /etc/fstab
- # ext4优化
- /dev/sda1 / ext4 noatime,nodiratime,data=writeback,barrier=0,commit=60 0 1
- # btrfs优化
- /dev/sda2 /home btrfs noatime,nodiratime,compress=lzo,ssd,discard 0 2
- # xfs优化
- /dev/sda3 /data xfs noatime,nodiratime,logbufs=8,logbsize=256k 0 2
- # f2fs优化
- /dev/sdb1 /mnt/ssd f2fs noatime,nodiratime,background_gc=on,discard 0 2
复制代码
参数解释:
• noatime/nodiratime:不更新访问时间,减少磁盘写入
• data=writeback:提高写入性能,但可能增加数据丢失风险
• barrier=0:禁用写入屏障,提高性能但降低安全性
• commit=60:每60秒提交一次数据,减少磁盘活动
• compress=lzo:使用lzo压缩算法
• ssd:启用SSD优化
• discard:启用TRIM支持
I/O调度器调整
根据存储类型选择合适的I/O调度器:
- # 查看当前调度器
- cat /sys/block/sda/queue/scheduler
- # 临时更改调度器
- echo noop > /sys/block/sda/queue/scheduler
- # 永久更改调度器(通过udev规则)
- echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"' > /etc/udev/rules.d/60-io-scheduler.rules
- echo 'ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"' >> /etc/udev/rules.d/60-io-scheduler.rules
复制代码
调度器选择建议:
• SSD:noop或deadline
• HDD:bfq或cfq
• 混合使用:mq-deadline
内存管理优化
交换空间配置
合理配置交换空间可以提高系统性能:
- # 创建交换文件
- fallocate -l 4G /swapfile
- chmod 600 /swapfile
- mkswap /swapfile
- swapon /swapfile
- # 添加到/etc/fstab
- echo '/swapfile none swap sw 0 0' >> /etc/fstab
- # 调整交换参数
- sysctl vm.swappiness=10
- echo 'vm.swappiness=10' >> /etc/sysctl.conf
复制代码
对于SSD,可以启用交换压缩:
- # 安装zram-generator
- emerge --ask sys-apps/zram-generator
- # 配置zram
- echo '[zram0]' > /etc/systemd/zram-generator.conf
- echo 'compression-algorithm = lz4' >> /etc/systemd/zram-generator.conf
- echo 'zram-size = 4096' >> /etc/systemd/zram-generator.conf
- # 启用zram
- systemctl enable systemd-zram-setup@zram0.service
- systemctl start systemd-zram-setup@zram0.service
复制代码
内存分配策略
调整内存分配策略以优化性能:
- # /etc/sysctl.conf
- # 增加内存映射区域限制
- vm.max_map_count=262144
- # 优化内存脏页处理
- vm.dirty_ratio=15
- vm.dirty_background_ratio=5
- vm.dirty_expire_centisecs=500
- vm.dirty_writeback_centisecs=100
- # 优化 slab 分配器
- vm.vfs_cache_pressure=50
复制代码
内核内存管理参数
优化内核内存管理参数:
- # /etc/sysctl.conf
- # 启用透明大页
- vm.nr_hugepages=1024
- vm.nr_overcommit_hugepages=2048
- # 优化内存 overcommit
- vm.overcommit_memory=2
- vm.overcommit_ratio=80
- # 优化 OOM killer 行为
- vm.panic_on_oom=0
- vm.oom_kill_allocating_task=1
复制代码
网络性能优化
网络参数调整
优化网络参数以提高吞吐量和减少延迟:
- # /etc/sysctl.conf
- # 增加网络缓冲区大小
- net.core.rmem_max=16777216
- net.core.wmem_max=16777216
- net.ipv4.tcp_rmem="4096 87380 16777216"
- net.ipv4.tcp_wmem="4096 65536 16777216"
- # 优化 TCP 连接
- net.ipv4.tcp_fin_timeout=10
- net.ipv4.tcp_tw_reuse=1
- net.ipv4.tcp_max_syn_backlog=65536
- net.core.netdev_max_backlog=65536
- net.ipv4.tcp_max_tw_buckets=400000
- net.ipv4.tcp_no_metrics_save=1
- net.ipv4.tcp_moderate_rcvbuf=1
- # 启用 BBR 拥塞控制算法
- net.ipv4.tcp_congestion_control=bbr
- net.core.default_qdisc=fq
复制代码
网络栈优化
优化网络栈以提高性能:
- # /etc/sysctl.conf
- # 禁用 TCP slow start after idle
- net.ipv4.tcp_slow_start_after_idle=0
- # 启用 TCP fast open
- net.ipv4.tcp_fastopen=3
- # 优化 TCP 窗口缩放
- net.ipv4.tcp_window_scaling=1
- # 优化 TCP 重传
- net.ipv4.tcp_retries2=5
- net.ipv4.tcp_orphan_retries=3
- # 启用 ECN (Explicit Congestion Notification)
- net.ipv4.tcp_ecn=1
复制代码
高级网络配置
对于高级网络需求,如高性能服务器或网络密集型应用:
- # 安装网络优化工具
- emerge --ask sys-apps/ethtool net-misc/wireguard-tools
- # 优化网络接口
- ethtool -G eth0 rx 4096 tx 4096
- ethtool -K eth0 tso off gso off gro off
- # 配置 WireGuard VPN
- wg genkey | tee privatekey | wg pubkey > publickey
- # 创建 WireGuard 配置
- cat > /etc/wireguard/wg0.conf << EOF
- [Interface]
- PrivateKey = $(cat privatekey)
- Address = 10.0.0.1/24
- ListenPort = 51820
- [Peer]
- PublicKey = $(cat publickey)
- AllowedIPs = 10.0.0.2/32
- EOF
- # 启用 WireGuard
- wg-quick up wg0
复制代码
安全性与性能的平衡
在追求性能的同时,不应忽视系统安全。以下是一些平衡安全性和性能的建议:
1. 使用SELinux或AppArmor:
“`bash安装SELinuxemerge –ask sys-apps/policycoreutils selinux-base-policy
使用SELinux或AppArmor:
“`bash
emerge –ask sys-apps/policycoreutils selinux-base-policy
# 启用SELinux
selinux-activate
- 2. **配置防火墙**:
- ```bash
- # 安装并配置nftables
- emerge --ask net-firewall/nftables
-
- # 创建基本防火墙规则
- nft add table inet filter
- nft add chain inet filter input { type filter hook input priority 0\; }
- nft add chain inet filter forward { type filter hook forward priority 0\; }
- nft add chain inet filter output { type filter hook output priority 0\; }
-
- # 允许已建立的连接和本地回环
- nft add rule inet filter input ct state established,related accept
- nft add rule inet filter input iifname lo accept
-
- # 允许SSH连接
- nft add rule inet filter input tcp dport 22 accept
-
- # 拒绝其他连接
- nft add rule inet filter input counter drop
-
- # 保存规则
- nft list ruleset > /etc/nftables.conf
复制代码
1. 配置fail2ban防止暴力破解:
“`bash安装fail2banemerge –ask net-analyzer/fail2ban
配置fail2ban防止暴力破解:
“`bash
emerge –ask net-analyzer/fail2ban
# 配置fail2ban
cat > /etc/fail2ban/jail.local << EOF
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 3
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
EOF
# 启动fail2ban
rc-update add fail2ban default
rc-service fail2ban start
- ## 监测与基准测试
- 为了评估优化效果,需要使用适当的工具进行监测和基准测试:
- 1. **系统监测工具**:
- ```bash
- # 安装监测工具
- emerge --ask sys-process/htop sys-process/iotop app-admin/sysstat sys-process/procps
-
- # 使用htop监测系统资源
- htop
-
- # 使用iotop监测I/O使用情况
- iotop
-
- # 使用vmstat监测虚拟内存统计
- vmstat 1
-
- # 使用sar收集系统活动报告
- sar -u 1 5
复制代码
1. 性能基准测试:
“`bash安装基准测试工具emerge –ask app-benchmarks/sysbench app-benchmarks/iozone app-benchmarks/phoronix-test-suite
性能基准测试:
“`bash
emerge –ask app-benchmarks/sysbench app-benchmarks/iozone app-benchmarks/phoronix-test-suite
# CPU基准测试
sysbench cpu –cpu-max-prime=20000 run
# 内存基准测试
sysbench memory –memory-block-size=1K –memory-total-size=10G run
# 磁盘I/O基准测试
sysbench fileio –file-total-size=1G –file-test-mode=rndrw prepare
sysbench fileio –file-total-size=1G –file-test-mode=rndrw run
sysbench fileio –file-total-size=1G –file-test-mode=rndrw cleanup
# 文件系统基准测试
iozone -e -I -a -s 1G -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
# 使用Phoronix测试套件
phoronix-test-suite benchmark pts/system
- 3. **网络性能测试**:
- ```bash
- # 安装网络测试工具
- emerge --ask net-analyzer/iperf3 net-analyzer/netperf
-
- # 启动iperf3服务器
- iperf3 -s
-
- # 从客户端测试网络性能
- iperf3 -c <server_ip>
-
- # 使用netperf进行更详细的网络测试
- netserver
- netperf -H <server_ip> -t TCP_STREAM
复制代码
实际案例与最佳实践
案例一:Web服务器优化
针对运行Nginx和PHP-FPM的Web服务器:
- # 安装必要的软件包
- emerge --ask www-servers/nginx www-servers/php-fpm
- # 优化Nginx配置
- cat > /etc/nginx/nginx.conf << EOF
- user nginx;
- worker_processes auto;
- worker_rlimit_nofile 65535;
- pid /run/nginx.pid;
- events {
- worker_connections 4096;
- multi_accept on;
- use epoll;
- }
- http {
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 30;
- keepalive_requests 100000;
- reset_timedout_connection on;
- client_body_timeout 10;
- send_timeout 2;
-
- open_file_cache max=200000 inactive=20s;
- open_file_cache_valid 30s;
- open_file_cache_min_uses 2;
- open_file_cache_errors on;
-
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
-
- access_log off;
- error_log /var/log/nginx/error.log crit;
-
- gzip on;
- gzip_disable "msie6";
- gzip_vary on;
- gzip_proxied any;
- gzip_comp_level 6;
- gzip_buffers 16 8k;
- gzip_http_version 1.1;
- gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
-
- include /etc/nginx/conf.d/*.conf;
- }
- EOF
- # 优化PHP-FPM配置
- cat > /etc/php/fpm-php7.4/php.ini << EOF
- memory_limit = 128M
- max_execution_time = 30
- max_input_time = 60
- realpath_cache_size = 32K
- realpath_cache_ttl = 120
- EOF
- cat > /etc/php/fpm-php7.4/php-fpm.conf << EOF
- [global]
- pid = /run/php-fpm.pid
- error_log = /var/log/php-fpm.log
- log_level = warning
- emergency_restart_threshold = 10
- emergency_restart_interval = 1m
- process_control_timeout = 10s
- [www]
- listen = /run/php-fpm.sock
- listen.backlog = 65535
- listen.owner = nginx
- listen.group = nginx
- listen.mode = 0660
- user = nginx
- group = nginx
- pm = dynamic
- pm.max_children = 50
- pm.start_servers = 5
- pm.min_spare_servers = 5
- pm.max_spare_servers = 35
- pm.max_requests = 1000
- pm.process_idle_timeout = 10s
- EOF
- # 启动服务
- rc-update add nginx default
- rc-update add php-fpm default
- rc-service nginx start
- rc-service php-fpm start
复制代码
案例二:数据库服务器优化
针对运行PostgreSQL的数据库服务器:
- # 安装PostgreSQL
- emerge --ask dev-db/postgresql
- # 初始化数据库
- emerge --config =dev-db/postgresql-*
- # 优化PostgreSQL配置
- cat > /etc/postgresql-12/postgresql.conf << EOF
- listen_addresses = '*'
- port = 5432
- max_connections = 100
- shared_buffers = 4GB
- effective_cache_size = 12GB
- maintenance_work_mem = 1GB
- checkpoint_completion_target = 0.9
- wal_buffers = 16MB
- default_statistics_target = 100
- random_page_cost = 1.1
- effective_io_concurrency = 200
- work_mem = 16MB
- min_wal_size = 4GB
- max_wal_size = 16GB
- max_worker_processes = 8
- max_parallel_workers_per_gather = 4
- max_parallel_workers = 8
- max_parallel_maintenance_workers = 4
- EOF
- # 优化系统参数
- cat >> /etc/sysctl.conf << EOF
- # PostgreSQL优化
- kernel.shmmax = 4294967296
- kernel.shmall = 1073741824
- kernel.shmmni = 4096
- kernel.sem = 5010 641280 5010 128
- vm.swappiness = 1
- vm.dirty_ratio = 2
- vm.dirty_background_ratio = 1
- EOF
- sysctl -p
- # 启动PostgreSQL
- rc-update add postgresql-12 default
- rc-service postgresql-12 start
复制代码
案例三:桌面系统优化
针对Gentoo桌面系统的优化:
结论
Gentoo Linux提供了无与伦比的系统优化潜力,通过合理的编译优化、内核调优和服务配置,可以打造一个高效、稳定且个性化的Linux运行环境。本指南涵盖了从基础配置到高级优化的各个方面,帮助您充分发挥Gentoo系统的性能优势。
需要注意的是,系统优化是一个持续的过程,需要根据实际使用场景不断调整和改进。通过监测工具和基准测试,您可以评估优化效果,并进一步调整配置以达到最佳性能。
最重要的是,在追求性能的同时,不要忽视系统的稳定性和安全性。合理的优化应该是在这三者之间找到平衡点,根据您的具体需求做出适当的取舍。
希望本指南能够帮助您打造一个高效、稳定且个性化的Gentoo Linux系统,充分发挥硬件潜力,提升工作效率和使用体验。 |
|