Linux服务器配置
ECS 经济型e实例99计划 2核2G,3M固定带宽 40G ESSD Entry云盘
检测是否存在内存超售
1
|
curl https://raw.githubusercontent.com/uselibrary/memoryCheck/main/memoryCheck.sh | bash
|
或
1
|
wget --no-check-certificate -O memoryCheck.sh https://raw.githubusercontent.com/uselibrary/memoryCheck/main/memoryCheck.sh && chmod +x memoryCheck.sh && bash memoryCheck.sh
|
如果超售,可以采用下面的方法关闭
检查
要检查是否存在Virtio-Balloon,可使用lsmod检查是否加载
1
|
lsmod | grep virtio_balloon
|
若无输出,则不存在Virtio-Balloon
永久卸载
为了防止重启后自动启动,可以将规则添加到/etc/modprobe.d/下的配置文件
打开配置文件
1
|
vim /etc/modprobe.d/blacklist.conf
|
上述命令中,vim可换为您习惯的文件编辑器,blacklist.conf文件名可修改,只要确保后缀为.conf
写入规则
使用文件编辑器在配置文件内写入
1
|
blacklist virtio_balloon
|
保存并退出文件编辑器
通过在 blacklist-virtio-balloon.conf 文件中写入 “blacklist virtio_balloon”,系统将不再加载 virtio_balloon 模块,因此禁用了相关的功能和特性。这样做可以确保系统在启动时不会加载这个模块,从而实现了禁用 virtio_balloon 内核模块的目的。
重新生成initramfs
它会重新生成 initramfs 文件,将最新的配置文件和内核模块信息包含进去。
对于编译到内核
部分服务商可能会将virtio_balloon编译进内核,而不是内核模块,使得无法通过lsmod | grep virtio_balloon 查询到,且rmmod virtio_balloon无法卸载,对于这种情况可以采用指定Linux内核启动时的命令行参数和选项禁用。
首先,使用您喜欢的文件编辑器打开/etc/default/grub
如vim
找到GRUB_CMDLINE_LINUX ,在后面的引号内加上virtio_balloon=0
例如
1
|
GRUB_CMDLINE_LINUX="virtio_balloon=0"
|
若GRUB_CMDLINE_LINUX 后的引号内非空,则按下面修改
例如(abc为示例原有参数)
1
|
GRUB_CMDLINE_LINUX="abc virtio_balloon=0"
|
修改完毕后,输入以下命令更新grub配置,并重启服务器
若没有上述命令,则使用以下命令
1
|
grub-mkconfig -o /boot/grub/grub.cfg
|
开启zram
1
|
curl -L https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh -o addzram.sh && chmod +x addzram.sh && bash addzram.sh
|
选lz4,768MB。
修改部分配置
Linux配置
| 参数 |
值 |
说明 |
fs.file-max |
186628 |
系统最大文件句柄数,影响连接数 |
fs.inotify.max_user_instances |
512 |
文件监控实例数,影响同步工具 |
fs.inotify.max_user_watches |
32768 |
可监控的最大文件数 |
net.core.netdev_max_backlog |
2000 |
网络设备接收队列,防止高流量丢包 |
net.core.somaxconn |
1024 |
监听队列长度,影响并发连接数 |
net.ipv4.tcp_fin_timeout |
60 |
TCP关闭等待时间(秒),加快端口回收 |
net.ipv4.tcp_keepalive_time |
7200 |
TCP空闲探测时间(秒) |
net.ipv4.tcp_max_syn_backlog |
1024 |
TCP半连接队列,防御SYN攻击 |
net.ipv4.tcp_syncookies |
1 |
SYN Cookies防御洪水攻击 (0关闭/1开启) |
net.ipv4.tcp_tw_reuse |
1 |
TIME_WAIT重用,加快端口释放 (0关闭/1开启) |
net.ipv4.tcp_window_scaling |
1 |
TCP窗口扩展,提高带宽性能 (0关闭/1开启) |
Nginx
| 参数 |
值 |
说明 |
worker_processes |
auto |
处理进程,auto表示自动,数字表示进程数 |
worker_connections |
2048 |
最大并发链接数 |
keepalive_timeout |
60 |
连接超时时间 |
gzip |
开启 |
是否开启压缩传输 |
gzip_min_length |
2 |
KB,最小压缩文件 |
gzip_comp_level |
2 |
压缩率 |
client_max_body_size |
50 |
MB,最大上传文件 |
server_names_hash_bucket_size |
512 |
服务器名字的hash表大小 |
client_header_buffer_size |
32 |
KB,客户端请求头buffer大小 |
client_body_buffer_size |
128 |
KB,请求主体缓冲区 |
PHP
| 参数 |
值 |
说明 |
short_open_tag |
关闭 |
短标签支持 |
max_execution_time |
180 |
最大脚本运行时间 |
max_input_time |
60 |
最大输入时间 |
memory_limit |
128M |
脚本内存限制 |
post_max_size |
50M |
POST数据最大尺寸 |
file_uploads |
开启 |
是否允许上传文件 |
upload_max_filesize |
48M |
允许上传文件的最大尺寸 |
max_file_uploads |
20 |
允许同时上传文件的最大数量 |
default_socket_timeout |
60 |
Socket超时时间 |
error_reporting |
E_ALL |
错误级别 |
display_errors |
关闭 |
是否输出详细错误信息 |
cgi.fix_pathinfo |
0 |
是否开启pathinfo |
date.timezone |
Asia/Shanghai |
时区 |
PHP性能调整
| 参数 |
值 |
说明 |
| 运行模式 |
动态模式 |
PHP-FPM运行模式 |
| max_children |
10 |
允许创建的最大子进程数 |
| start_servers |
2 |
起始进程数(服务启动后初始进程数量) |
| min_spare_servers |
2 |
最小空闲进程数(清理空闲进程后的保留数量) |
| max_spare_servers |
6 |
最大空闲进程数(当空闲进程达到此值时清理) |
Redis
| 参数 |
值 |
说明 |
bind |
127.0.0.1 |
绑定IP(修改绑定IP可能会存在安全隐患) |
port |
6379 |
绑定端口 |
timeout |
300 |
空闲连接超时时间,0表示不断开 |
maxclients |
256 |
最大连接数 |
databases |
16 |
数据库数量 |
requirepass |
[您的强密码] |
redis密码,留空代表没有设置密码 |
maxmemory |
768 |
MB,最大使用内存,0表示不限制 |
Redis持久化
| 参数 |
值 |
说明 |
| appendonly |
开启 |
|
| appendfsync |
everysec |
|
| save |
900 100 |
900秒内插入100条数据 |
| save |
300 50 |
300秒内插入50条数据 |
| save |
60 1000 |
60秒内插入1000条数据 |