|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
引言
Gentoo Linux是一款以高度可定制性和优化著称的Linux发行版。与其他发行版不同,Gentoo采用源码包管理系统,允许用户根据自己的硬件特性和需求,从源代码编译整个系统。这种独特的特性使得Gentoo成为追求极致性能用户的理想选择。然而,要充分发挥Gentoo的潜力,需要系统性地进行优化,从编译参数调整到服务配置,每一个环节都可能影响系统的整体性能。
本文将分享Gentoo Linux系统优化的实战经验,涵盖从基础的编译参数调整到高级的服务配置,帮助读者全方位提升系统性能。无论您是Gentoo新手还是经验丰富的用户,都能从这些实用经验中获益。
Gentoo Linux系统优化的基本原则
在开始优化之前,我们需要了解一些基本原则,这些原则将指导我们的优化工作:
1. 针对性优化:优化应该针对特定的硬件和使用场景。不同的硬件配置和使用需求需要不同的优化策略。
2. 平衡性原则:性能、稳定性和安全性之间需要找到平衡点。过度追求性能可能会影响系统的稳定性或安全性。
3. 可测量性:优化应该是可测量的。在实施优化前后,应该使用工具进行性能测试,以验证优化的效果。
4. 渐进式优化:优化应该是一个渐进的过程,一次只调整一个参数或设置,以便在出现问题时能够快速定位。
5. 文档记录:所有的优化变更都应该有详细的文档记录,以便在需要时恢复或参考。
针对性优化:优化应该针对特定的硬件和使用场景。不同的硬件配置和使用需求需要不同的优化策略。
平衡性原则:性能、稳定性和安全性之间需要找到平衡点。过度追求性能可能会影响系统的稳定性或安全性。
可测量性:优化应该是可测量的。在实施优化前后,应该使用工具进行性能测试,以验证优化的效果。
渐进式优化:优化应该是一个渐进的过程,一次只调整一个参数或设置,以便在出现问题时能够快速定位。
文档记录:所有的优化变更都应该有详细的文档记录,以便在需要时恢复或参考。
编译参数调整
Gentoo最大的优势之一就是能够针对特定硬件优化编译参数。合理的编译参数设置可以显著提升系统性能。
CFLAGS和CXXFLAGS优化
CFLAGS和CXXFLAGS是用于C和C++编译的参数,它们直接影响生成代码的效率。以下是一些常用的优化参数:
- # 针对不同CPU架构的优化参数
- # 通用x86_64架构
- COMMON_FLAGS="-O2 -pipe -march=native"
- # 针对Intel CPU的优化
- # COMMON_FLAGS="-O2 -pipe -march=native -mtune=intel"
- # 针对AMD CPU的优化
- # COMMON_FLAGS="-O2 -pipe -march=native -mtune=amd"
- # 更激进的优化(可能影响稳定性)
- # COMMON_FLAGS="-O3 -pipe -march=native -fomit-frame-pointer -funroll-loops"
- # 在/etc/portage/make.conf中设置
- echo "COMMON_FLAGS="${COMMON_FLAGS}"" >> /etc/portage/make.conf
- echo "CFLAGS="\${COMMON_FLAGS}"" >> /etc/portage/make.conf
- echo "CXXFLAGS="\${COMMON_FLAGS}"" >> /etc/portage/make.conf
复制代码
参数说明:
• -O2:常用的优化级别,平衡了性能和编译时间。
• -O3:更高级别的优化,可能产生更快的代码,但会增加编译时间和潜在的稳定性问题。
• -pipe:使用管道而不是临时文件进行编译阶段间的通信,可以加快编译速度。
• -march=native:针对当前CPU架构进行优化,自动检测并使用当前CPU支持的所有指令集。
• -mtune=intel或-mtune=amd:针对特定CPU厂商进行优化。
• -fomit-frame-pointer:省略帧指针,可以释放一个寄存器用于优化,但会使调试更困难。
• -funroll-loops:展开循环,可能提高性能但会增加代码大小。
MAKEOPTS设置
MAKEOPTS参数控制并行编译的进程数,合理设置可以显著缩短编译时间:
- # 获取CPU核心数
- CPU_CORES=$(nproc)
- # 设置MAKEOPTS,通常为CPU核心数+1
- MAKEOPTS="-j${CPU_CORES} -l${CPU_CORES}"
- # 在/etc/portage/make.conf中设置
- echo "MAKEOPTS="${MAKEOPTS}"" >> /etc/portage/make.conf
复制代码
参数说明:
• -jN:指定并行编译的进程数,通常设置为CPU核心数或核心数+1。
• -lN:指定平均负载超过N时不启动新的编译任务,防止系统过载。
USE标志的合理配置
USE标志是Gentoo特有的功能,用于控制软件包的编译选项。合理配置USE标志可以减少不必要的功能,减小软件体积,提高性能:
- # 查看当前系统设置的USE标志
- emerge --info | grep ^USE
- # 编辑/etc/portage/make.conf,设置全局USE标志
- cat >> /etc/portage/make.conf << EOF
- # 减少不必要的依赖和功能
- USE="-alsa -cups -dbus -gnome -gtk -kde -pulseaudio -systemd -wayland -X"
- # 根据需要添加有用的USE标志
- USE+="mmx sse sse2 ssse3 sse4_1 sse4_2 avx avx2 aes threads"
- EOF
- # 为特定软件包设置USE标志
- mkdir -p /etc/portage/package.use
- echo "www-client/firefox -pulseaudio -alsa" >> /etc/portage/package.use/custom-flags
复制代码
常用的性能相关USE标志:
• mmx,sse,sse2,ssse3,sse4_1,sse4_2,avx,avx2:启用CPU特定指令集优化。
• threads:启用多线程支持。
• aes:启用AES硬件加速。
特定软件的编译优化
对于一些关键软件,可以设置特定的编译参数以获得最佳性能:
- # 为特定软件包设置CFLAGS
- mkdir -p /etc/portage/package.env
- echo "sys-devel/gcc custom-gcc" >> /etc/portage/package.env/custom-flags
- # 创建/etc/portage/env/custom-gcc文件
- cat > /etc/portage/env/custom-gcc << EOF
- CFLAGS="-O3 -pipe -march=native -fomit-frame-pointer -funroll-loops"
- CXXFLAGS="\${CFLAGS}"
- EOF
- # 针对Firefox的优化
- echo "www-client/firefox custom-firefox" >> /etc/portage/package.env/custom-flags
- cat > /etc/portage/env/custom-firefox << EOF
- CFLAGS="-O3 -pipe -march=native -fomit-frame-pointer"
- CXXFLAGS="\${CFLAGS}"
- LDFLAGS="-Wl,-O1 -Wl,--as-needed"
- EOF
复制代码
内核优化
内核是系统的核心,优化内核配置可以显著提升系统性能。
内核配置选项
Gentoo允许用户自定义内核配置,以下是一些性能相关的内核配置选项:
- # 安装内核源码
- emerge sys-kernel/gentoo-sources
- # 配置内核
- cd /usr/src/linux
- make menuconfig
复制代码
在内核配置中,以下选项对性能影响较大:
1. 处理器类型和特性:设置正确的CPU类型(Processor type and features)启用Preemption Model(Preemption Model)启用Tickless System(Timer frequency)启用CPU频率调节(CPU Frequency scaling)
2. 设置正确的CPU类型(Processor type and features)
3. 启用Preemption Model(Preemption Model)
4. 启用Tickless System(Timer frequency)
5. 启用CPU频率调节(CPU Frequency scaling)
6. 内存管理:启用透明大页(Transparent Hugepage Support)启用内存压缩(Memory compression)调整内存分配策略(Memory allocator options)
7. 启用透明大页(Transparent Hugepage Support)
8. 启用内存压缩(Memory compression)
9. 调整内存分配策略(Memory allocator options)
10. 文件系统:启用常用的文件系统支持(如ext4, xfs, btrfs)启用高级特性(如EXT4 filesystem support)
11. 启用常用的文件系统支持(如ext4, xfs, btrfs)
12. 启用高级特性(如EXT4 filesystem support)
13. 网络支持:启用高级网络功能(Network packet filtering framework)启用TCP/IP高级功能(TCP/IP networking)
14. 启用高级网络功能(Network packet filtering framework)
15. 启用TCP/IP高级功能(TCP/IP networking)
处理器类型和特性:
• 设置正确的CPU类型(Processor type and features)
• 启用Preemption Model(Preemption Model)
• 启用Tickless System(Timer frequency)
• 启用CPU频率调节(CPU Frequency scaling)
内存管理:
• 启用透明大页(Transparent Hugepage Support)
• 启用内存压缩(Memory compression)
• 调整内存分配策略(Memory allocator options)
文件系统:
• 启用常用的文件系统支持(如ext4, xfs, btrfs)
• 启用高级特性(如EXT4 filesystem support)
网络支持:
• 启用高级网络功能(Network packet filtering framework)
• 启用TCP/IP高级功能(TCP/IP networking)
内核编译参数
配置完成后,可以使用以下命令编译和安装内核:
- # 编译内核
- make -j$(nproc)
- # 安装模块
- make modules_install
- # 安装内核
- make install
- # 更新GRUB配置
- grub-mkconfig -o /boot/grub/grub.cfg
复制代码
模块管理优化
合理管理内核模块可以减少内存使用和提高系统响应速度:
- # 列出当前加载的模块
- lsmod
- # 禁用不必要的模块自动加载
- echo "blacklist module_name" >> /etc/modprobe.d/blacklist.conf
- # 手动加载模块
- modprobe module_name
- # 卸载模块
- modprobe -r module_name
- # 创建/etc/modules-load.d目录,存放需要启动时加载的模块
- mkdir -p /etc/modules-load.d
- echo "module_name" > /etc/modules-load.d/custom-modules.conf
复制代码
文件系统优化
文件系统的选择和配置对系统性能有重要影响。
选择合适的文件系统
不同的文件系统有不同的特性,适用于不同的场景:
1. ext4:稳定可靠,兼容性好,适合大多数场景。
2. xfs:高性能,特别适合大文件和高并发访问,适合服务器环境。
3. btrfs:现代文件系统,支持快照、压缩等高级特性,适合需要数据保护的环境。
4. f2fs:针对闪存优化,适合SSD和eMMC存储。
- # 格式化文件系统示例
- # 创建ext4文件系统
- mkfs.ext4 /dev/sda1
- # 创建xfs文件系统
- mkfs.xfs /dev/sda2
- # 创建btrfs文件系统
- mkfs.btrfs /dev/sda3
- # 创建f2fs文件系统
- mkfs.f2fs /dev/sda4
复制代码
挂载选项优化
合理的挂载选项可以显著提升文件系统性能:
- # 编辑/etc/fstab文件,优化挂载选项
- cat >> /etc/fstab << EOF
- # 示例:SSD上的ext4文件系统
- /dev/sda1 / ext4 noatime,nodiratime,discard,defaults 0 1
- # 示例:机械硬盘上的xfs文件系统
- /dev/sda2 /data xfs noatime,nodiratime,defaults 0 2
- # 示例:启用压缩的btrfs文件系统
- /dev/sda3 /backup btrfs compress=lzo,noatime,nodiratime,defaults 0 2
- EOF
复制代码
挂载选项说明:
• noatime:不更新文件访问时间,减少磁盘写入。
• nodiratime:不更新目录访问时间,进一步减少磁盘写入。
• discard:启用TRIM支持,适合SSD。
• compress=lzo:启用LZO压缩,减少磁盘空间使用。
文件系统维护
定期维护文件系统可以保持其性能:
- # 检查文件系统
- fsck /dev/sda1
- # 对于ext4文件系统,调整保留块百分比
- tune2fs -m 1 /dev/sda1
- # 对于xfs文件系统,进行碎片整理
- xfs_fsr /dev/sda2
- # 对于btrfs文件系统,进行平衡操作
- btrfs filesystem balance /backup
复制代码
内存管理优化
内存管理对系统性能有直接影响,合理的内存配置可以提高系统响应速度。
交换分区配置
交换分区(swap)的配置对系统性能有重要影响:
- # 创建交换文件
- fallocate -l 4G /swapfile
- chmod 600 /swapfile
- mkswap /swapfile
- swapon /swapfile
- # 编辑/etc/fstab,添加交换文件
- echo "/swapfile none swap sw 0 0" >> /etc/fstab
- # 调整swappiness参数(0-100,值越低越少使用swap)
- echo "vm.swappiness=10" >> /etc/sysctl.d/99-sysctl.conf
- # 应用设置
- sysctl -p /etc/sysctl.d/99-sysctl.conf
复制代码
内存分配策略
调整内存分配策略可以提高系统性能:
- # 编辑/etc/sysctl.d/99-sysctl.conf,添加内存管理参数
- cat >> /etc/sysctl.d/99-sysctl.conf << EOF
- # 增加文件句柄限制
- fs.file-max = 100000
- # 增加内存映射区域限制
- vm.max_map_count = 262144
- # 调整脏页回写参数
- vm.dirty_ratio = 10
- vm.dirty_background_ratio = 5
- # 调整虚拟内存管理参数
- vm.vfs_cache_pressure = 50
- EOF
- # 应用设置
- sysctl -p /etc/sysctl.d/99-sysctl.conf
复制代码
缓存和缓冲区管理
合理管理缓存和缓冲区可以提高系统性能:
- # 清理页面缓存
- echo 1 > /proc/sys/vm/drop_caches
- # 清理目录项和inode
- echo 2 > /proc/sys/vm/drop_caches
- # 清理页面缓存、目录项和inode
- echo 3 > /proc/sys/vm/drop_caches
- # 设置自动清理缓存(不推荐在生产环境使用)
- # echo "0 3 * * * sync && echo 1 > /proc/sys/vm/drop_caches" | crontab -
复制代码
服务配置优化
合理配置系统服务可以减少资源占用,提高系统性能。
系统服务精简
禁用不必要的服务可以释放系统资源:
- # 查看已启用的服务
- rc-update show
- # 禁用不必要的服务
- rc-update del service_name default
- # 启用必要的服务
- rc-update add service_name default
- # 常见可以禁用的服务(根据实际需求)
- rc-update del bluetooth default
- rc-update del cupsd default
- rc-update del avahi-daemon default
- rc-update del syslog-ng default
复制代码
启动项管理
管理启动项可以加快系统启动速度:
- # 编辑/etc/conf.d/local.start,添加自定义启动命令
- cat >> /etc/conf.d/local.start << EOF
- # 自定义启动命令
- mount -o remount,size=2G /run/shm
- EOF
- # 使用systemd-analyze分析启动时间(如果使用systemd)
- systemd-analyze time
- systemd-analyze blame
复制代码
服务并行启动
启用并行启动可以加快系统启动速度:
- # 编辑/etc/rc.conf,启用并行启动
- sed -i 's/#rc_parallel="NO"/rc_parallel="YES"/' /etc/rc.conf
- # 调整并行启动的超时时间
- echo 'rc_timeout=120' >> /etc/rc.conf
复制代码
网络优化
网络优化可以提高网络吞吐量和响应速度。
网络参数调整
调整网络参数可以提高网络性能:
- # 编辑/etc/sysctl.d/99-sysctl.conf,添加网络优化参数
- cat >> /etc/sysctl.d/99-sysctl.conf << EOF
- # 增加TCP缓冲区大小
- 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_window_scaling = 1
- # 启用TCP快速打开
- net.ipv4.tcp_fastopen = 3
- # 优化TCP拥塞控制算法
- net.ipv4.tcp_congestion_control = bbr
- # 增加网络连接队列大小
- net.core.netdev_max_backlog = 5000
- net.ipv4.tcp_max_syn_backlog = 4096
- EOF
- # 应用设置
- sysctl -p /etc/sysctl.d/99-sysctl.conf
复制代码
网络服务优化
优化网络服务配置可以提高网络性能:
- # 编辑/etc/ssh/sshd_config,优化SSH服务
- cat >> /etc/ssh/sshd_config << EOF
- # 启用TCP keepalive
- ClientAliveInterval 300
- ClientAliveCountMax 3
- # 禁用DNS反向查找
- UseDNS no
- # 启用压缩
- Compression yes
- EOF
- # 重启SSH服务
- /etc/init.d/sshd restart
复制代码
防火墙配置
合理配置防火墙可以在保证安全的同时提高网络性能:
- # 安装iptables
- emerge net-firewall/iptables
- # 创建防火墙规则
- cat > /etc/iptables/rules-save << EOF
- *filter
- :INPUT ACCEPT [0:0]
- :FORWARD ACCEPT [0:0]
- :OUTPUT ACCEPT [0:0]
- -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
- -A INPUT -i lo -j ACCEPT
- -A INPUT -p icmp -j ACCEPT
- -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
- -A INPUT -j DROP
- COMMIT
- EOF
- # 应用防火墙规则
- iptables-restore < /etc/iptables/rules-save
- # 保存防火墙规则
- /etc/init.d/iptables save
- rc-update add iptables default
复制代码
安全性与性能的平衡
在追求性能的同时,不能忽视系统的安全性。以下是一些在保证安全性的前提下提高性能的方法:
- # 安装安全工具
- emerge app-admin/sudo app-portage/eix app-portage/gentoolkit
- # 配置sudo,减少root使用
- echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers
- # 定期更新系统
- emerge --sync
- emerge -auvDN @world
- # 使用hardened GCC工具链提高安全性
- emerge sys-devel/hardened-gcc
复制代码
实战案例分享
桌面系统优化案例
以下是一个针对桌面系统的优化案例:
- # 安装桌面环境所需的软件包
- emerge x11-base/xorg-server xfce-base/xfce4-meta
- # 优化编译参数
- cat > /etc/portage/make.conf << EOF
- COMMON_FLAGS="-O2 -pipe -march=native -mtune=generic"
- CFLAGS="\${COMMON_FLAGS}"
- CXXFLAGS="\${COMMON_FLAGS}"
- MAKEOPTS="-j$(nproc)"
- USE="X gtk3 dbus pulseaudio alsa -systemd -gnome -kde"
- EOF
- # 优化内核配置
- cd /usr/src/linux
- make menuconfig
- # 选择以下选项:
- # Processor type and features -> Preemption Model -> Preemptible Kernel (Low-Latency Desktop)
- # Power management and ACPI options -> CPU Frequency scaling -> CPU frequency scaling
- # Device Drivers -> Graphics support -> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
- # 编译并安装内核
- make -j$(nproc) && make modules_install && make install
- # 优化文件系统挂载选项
- cat >> /etc/fstab << EOF
- # SSD优化
- /dev/sda1 / ext4 noatime,nodiratime,discard,defaults 0 1
- EOF
- # 优化内存管理
- cat >> /etc/sysctl.d/99-sysctl.conf << EOF
- # 减少swap使用
- vm.swappiness=10
- # 增加文件句柄限制
- fs.file-max=100000
- EOF
- # 应用设置
- sysctl -p /etc/sysctl.d/99-sysctl.conf
- # 安装并配置轻量级显示管理器
- emerge x11-mingdm/lightdm
- rc-update add lightdm default
复制代码
服务器优化案例
以下是一个针对Web服务器的优化案例:
- # 安装Web服务器所需的软件包
- emerge www-servers/nginx www-servers/php
- # 优化编译参数
- cat > /etc/portage/make.conf << EOF
- COMMON_FLAGS="-O2 -pipe -march=native"
- CFLAGS="\${COMMON_FLAGS}"
- CXXFLAGS="\${COMMON_FLAGS}"
- MAKEOPTS="-j$(nproc)"
- USE="-X -gtk -gnome -kde -alsa -pulseaudio threads"
- EOF
- # 优化内核配置
- cd /usr/src/linux
- make menuconfig
- # 选择以下选项:
- # Processor type and features -> Timer frequency -> 1000 HZ
- # Power management and ACPI options -> CPU Frequency scaling -> CPU frequency scaling
- # Device Drivers -> Network device support -> Ethernet driver support
- # 编译并安装内核
- make -j$(nproc) && make modules_install && make install
- # 优化文件系统挂载选项
- cat >> /etc/fstab << EOF
- # 服务器优化
- /dev/sda1 / xfs noatime,nodiratime,defaults 0 1
- /dev/sdb1 /data xfs noatime,nodiratime,defaults 0 2
- EOF
- # 优化网络参数
- cat >> /etc/sysctl.d/99-sysctl.conf << EOF
- # 增加TCP缓冲区大小
- 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_window_scaling = 1
- # 优化TCP拥塞控制算法
- net.ipv4.tcp_congestion_control = bbr
- # 增加网络连接队列大小
- net.core.netdev_max_backlog = 5000
- net.ipv4.tcp_max_syn_backlog = 4096
- EOF
- # 应用设置
- sysctl -p /etc/sysctl.d/99-sysctl.conf
- # 优化Nginx配置
- cat > /etc/nginx/nginx.conf << EOF
- user nginx;
- worker_processes auto;
- worker_rlimit_nofile 100000;
- error_log /var/log/nginx/error.log crit;
- pid /var/run/nginx.pid;
- events {
- worker_connections 4096;
- use epoll;
- multi_accept on;
- }
- http {
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- 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/conf.d/*.conf;
- }
- EOF
- # 启动Nginx
- rc-update add nginx default
- /etc/init.d/nginx start
复制代码
特定应用场景优化案例
以下是一个针对数据库服务器的优化案例:
- # 安装数据库服务器
- emerge dev-db/mariadb
- # 优化编译参数
- cat > /etc/portage/make.conf << EOF
- COMMON_FLAGS="-O2 -pipe -march=native"
- CFLAGS="\${COMMON_FLAGS}"
- CXXFLAGS="\${COMMON_FLAGS}"
- MAKEOPTS="-j$(nproc)"
- USE="-X -gtk -gnome -kde -alsa -pulseaudio"
- EOF
- # 优化内核配置
- cd /usr/src/linux
- make menuconfig
- # 选择以下选项:
- # Processor type and features -> Timer frequency -> 1000 HZ
- # Power management and ACPI options -> CPU Idle -> CPU idle PM support
- # Device Drivers -> SCSI device support -> SCSI low-level drivers
- # 编译并安装内核
- make -j$(nproc) && make modules_install && make install
- # 优化文件系统挂载选项
- cat >> /etc/fstab << EOF
- # 数据库服务器优化
- /dev/sda1 / xfs noatime,nodiratime,defaults 0 1
- /dev/sdb1 /data xfs noatime,nodiratime,defaults 0 2
- EOF
- # 优化内存管理
- cat >> /etc/sysctl.d/99-sysctl.conf << EOF
- # 增加共享内存限制
- kernel.shmmax = 4294967296
- kernel.shmall = 4194304
- kernel.shmmni = 4096
- # 增加文件句柄限制
- fs.file-max = 65536
- # 优化虚拟内存管理
- vm.swappiness = 10
- vm.dirty_ratio = 10
- vm.dirty_background_ratio = 5
- EOF
- # 应用设置
- sysctl -p /etc/sysctl.d/99-sysctl.conf
- # 优化MariaDB配置
- cat > /etc/mysql/mariadb.d/50-server.cnf << EOF
- [mysqld]
- # 基本设置
- port = 3306
- socket = /var/run/mysqld/mysqld.sock
- pid-file = /var/run/mysqld/mysqld.pid
- basedir = /usr
- datadir = /var/lib/mysql
- tmpdir = /var/tmp
- skip-external-locking
- # 缓存设置
- key_buffer_size = 256M
- max_allowed_packet = 16M
- thread_stack = 192K
- thread_cache_size = 8
- myisam-recover-options = BACKUP
- query_cache_type = 1
- query_cache_limit = 2M
- query_cache_size = 128M
- # InnoDB设置
- innodb_buffer_pool_size = 2G
- innodb_log_file_size = 256M
- innodb_log_buffer_size = 8M
- innodb_flush_log_at_trx_commit = 2
- innodb_lock_wait_timeout = 50
- # 日志设置
- slow_query_log = 1
- slow_query_log_file = /var/log/mysql/mariadb-slow.log
- long_query_time = 2
- # 其他设置
- max_connections = 200
- open_files_limit = 65535
- EOF
- # 初始化数据库并启动服务
- emerge --config dev-db/mariadb
- rc-update add mariadb default
- /etc/init.d/mariadb start
复制代码
性能监控与调优工具
为了验证优化效果和监控系统性能,可以使用以下工具:
- # 安装性能监控工具
- emerge sys-process/htop sys-process/iotop sys-process/lsof sys-apps/dstat app-benchmarks/sysbench
- # 使用htop监控系统资源
- htop
- # 使用iotop监控磁盘I/O
- iotop
- # 使用dstat监控系统资源使用情况
- dstat -tcmndpy --top-cpu --top-io --top-mem
- # 使用sysbench进行性能测试
- sysbench cpu run
- sysbench memory run
- sysbench fileio prepare
- sysbench fileio run
- sysbench fileio cleanup
- # 使用vmstat监控系统虚拟内存统计信息
- vmstat 1
- # 使用iostat监控磁盘I/O统计信息
- emerge sys-apps/sysstat
- iostat -xz 1
- # 使用sar收集、报告和保存系统活动信息
- sar -u 1 5
复制代码
总结与最佳实践
通过本文的分享,我们可以看到Gentoo Linux系统优化是一个系统工程,需要从多个方面进行考虑和调整。以下是一些总结和最佳实践:
1. 了解你的硬件:优化应该基于你的硬件特性和使用需求。了解你的CPU、内存、磁盘等硬件特性是优化的基础。
2. 渐进式优化:一次只调整一个参数或设置,然后测试其效果。这样可以更容易地定位问题。
3. 记录变更:记录所有的优化变更,包括参数调整的原因和效果。这样在出现问题时可以快速恢复。
4. 性能测试:在优化前后进行性能测试,验证优化的效果。可以使用各种基准测试工具和实际应用测试。
5. 定期维护:系统优化不是一次性的工作,需要定期检查和调整,以适应不断变化的需求和环境。
6. 平衡性能与稳定性:在追求性能的同时,不要忽视系统的稳定性和安全性。过于激进的优化可能会导致系统不稳定。
7. 利用社区资源:Gentoo有一个活跃的社区,可以利用Wiki、论坛和邮件列表等资源获取帮助和建议。
了解你的硬件:优化应该基于你的硬件特性和使用需求。了解你的CPU、内存、磁盘等硬件特性是优化的基础。
渐进式优化:一次只调整一个参数或设置,然后测试其效果。这样可以更容易地定位问题。
记录变更:记录所有的优化变更,包括参数调整的原因和效果。这样在出现问题时可以快速恢复。
性能测试:在优化前后进行性能测试,验证优化的效果。可以使用各种基准测试工具和实际应用测试。
定期维护:系统优化不是一次性的工作,需要定期检查和调整,以适应不断变化的需求和环境。
平衡性能与稳定性:在追求性能的同时,不要忽视系统的稳定性和安全性。过于激进的优化可能会导致系统不稳定。
利用社区资源:Gentoo有一个活跃的社区,可以利用Wiki、论坛和邮件列表等资源获取帮助和建议。
通过遵循这些最佳实践,你可以充分发挥Gentoo Linux的潜力,打造一个高性能、稳定可靠的系统。无论是桌面环境还是服务器环境,无论是通用应用还是特定场景,都可以通过合理的优化获得显著的性能提升。 |
|