Linux系统优化是一个比较复杂的过程,需要根据实际情况进行不同的配置和调整。以下是一些常见的优化步骤及其操作示例:
使用命令uname -a
查看系统版本和内核版本,使用命令top
或htop
查看系统资源使用情况。
通过命令行关闭服务和进程,如关闭apache服务:
sudo systemctl stop apache2
修改内核参数可以通过修改/etc/sysctl.conf
文件或者新建一个*.conf
文件并加入到/etc/sysctl.d/
目录中。
修改TCP/IP参数:
# 提高TCP性能
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 131072
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_window_scaling = 1
修改内存参数:
# 内存优化
vm.swappiness = 1
vm.dirty_ratio = 5
vm.dirty_background_ratio = 10
vm.dirty_expire_centisecs = 3000
vm.overcommit_memory = 1
vm.overcommit_ratio = 50
vm.min_free_kbytes = 65536
修改网络参数:
# 网络优化
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 1048576
net.core.wmem_default = 1048576
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = cubic
net.ipv4.ip_forward = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.icmp_echo_ignore_all = 1
使内核参数生效:
sudo sysctl -p
安装iptables:
sudo apt-get install iptables
启动时自动启动的进程会占用系统资源,因此减少启动项可以提高系统性能。可以使用以下命令查看当前所有的启动项:
systemctl list-unit-files | grep enabled
可以使用以下命令禁止某个启动项:
sudo systemctl disable [service_name]
例如,如果要禁用MySQL服务,则可以使用以下命令:
sudo systemctl disable mysql
同样地,可以使用以下命令禁用某个开机启动的应用程序:
sudo update-rc.d -f [service_name] remove
交换空间可以将内存中暂时不用的数据转移到硬盘上,以便为需要使用的应用程序腾出内存。可以使用以下命令查看当前的交换空间情况:
swapon --show
可以使用以下命令创建交换文件:
sudo fallocate -l [size] /swapfile
其中,[size]是交换文件的大小,可以使用M或G表示。例如,如果要创建一个大小为2GB的交换文件,则可以使用以下命令:
sudo fallocate -l 2G /swapfile
然后,使用以下命令将其格式化为交换文件:
sudo mkswap /swapfile
最后,使用以下命令启用交换文件:
sudo swapon /swapfile
为了使交换文件在系统启动时自动加载,可以将其添加到/etc/fstab文件中:
sudo nano /etc/fstab
在文件末尾添加以下行:
/swapfile swap swap defaults 0 0
保存并关闭文件。
禁用不必要的服务和功能可以减少系统的负载和攻击面。可以使用以下命令列出当前运行的服务:
systemctl list-units --type=service
可以使用以下命令禁用某个服务:
sudo systemctl disable [service_name]
例如,如果要禁用FTP服务,则可以使用以下命令:
sudo systemctl disable vsftpd
可以使用以下命令查看当前安装的软件包:
dpkg --list
可以使用以下命令卸载某个软件包:
sudo apt-get remove [package_name]
例如,如果要卸载Apache2,则可以使用以下命令:
sudo apt-get remove apache2
在Linux内核版本较老的系统中,启用IPv6可能会对性能产生负面影响。如果您的应用程序不需要IPv6支持,建议禁用它以提高性能。您可以通过编辑/etc/sysctl.conf
文件并添加以下行来禁用IPv6:
sudo nano /etc/sysctl.conf
在文件末尾添加以下行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
保存更改并运行以下命令以使更改生效:
sudo sysctl -p
如果您只想临时禁用IPv6,可以运行以下命令:
sudo sysctl net.ipv6.conf.all.disable_ipv6=1
sudo sysctl net.ipv6.conf.default.disable_ipv6=1
Linux系统通常默认安装了许多不必要的服务和进程,这些服务和进程可能会影响系统性能。您可以使用以下命令列出当前运行的所有服务和进程:
sudo systemctl list-unit-files --type=service
ps aux
根据需要停止不必要的服务,例如:
sudo systemctl stop service_name
或者,您可以在启动时禁用这些服务,以避免它们在系统启动时自动运行。
你可以使用各种性能监测工具来检测和优化Linux系统的性能。以下是一些常用的性能监测工具:
例如,要使用top命令监测系统资源使用情况,可以运行以下命令:
top
要退出top命令,请按下“q”键。
这些是Linux系统优化的一些常见步骤和操作示例。请注意,在优化Linux系统性能之前,您应该了解系统的基本情况并备份重要数据,以避免意外的错误。