打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

搬瓦工VPS磁盘IO优化与数据库调优:修订间差异

来自md5.pw
留言 | 贡献
发布
 
留言 | 贡献
无编辑摘要
 
(未显示同一用户的1个中间版本)
第11行: 第11行:


3. 点击中间的 '''Create new snapshot''' 按钮。
3. 点击中间的 '''Create new snapshot''' 按钮。
 
[[File:Io-1.png|center]]
[[index.php?title=File:Io-1.png|link=File:Io-1.png]]


打完快照后,看到列表里多了一条新的记录,状态是 Completed。这说明快照已经正常拍摄了,如果优化过程中遇到什么问题,可直接恢复快照。
打完快照后,看到列表里多了一条新的记录,状态是 Completed。这说明快照已经正常拍摄了,如果优化过程中遇到什么问题,可直接恢复快照。
第20行: 第19行:


=== 1.先备份配置文件: ===
=== 1.先备份配置文件: ===
<code>bash sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak</code>  
<code>bash sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak</code>
 
[[File:Io-2.png|center]]
[[index.php?title=File:Io-2.png|link=File:Io-2.png]]


回车后终端直接回到提示符,没有报错就说明备份成功了。
回车后终端直接回到提示符,没有报错就说明备份成功了。
第29行: 第27行:
输入下面命令并回车:
输入下面命令并回车:


<code>sudo sysctl -w vm.swappiness=30</code>  
<code>sudo sysctl -w vm.swappiness=30</code>
[[File:Io-3.png|center]]
 


[[index.php?title=File:Io-3.png|link=File:Io-3.png]]


会看到终端立刻输出一行 vm.swappiness = 30,这说明临时修改已经生效。
会看到终端立刻输出一行 vm.swappiness = 30,这说明临时修改已经生效。
第40行: 第39行:
<code>sudo sed -i '/vm.swappiness/d' /etc/sysctl.conf</code>  
<code>sudo sed -i '/vm.swappiness/d' /etc/sysctl.conf</code>  


<code>echo "vm.swappiness=30" | sudo tee -a /etc/sysctl.conf sudo sysctl -p</code>  
<code>echo "vm.swappiness=30" | sudo tee -a /etc/sysctl.conf sudo sysctl -p</code>
 
[[File:Io-4.png|center]]
[[index.php?title=File:Io-4.png|link=File:Io-4.png]]


最后一行输出 vm.swappiness = 30 就代表永久生效成功。如果看到 eth1 报错,直接忽略,不影响优化。
最后一行输出 vm.swappiness = 30 就代表永久生效成功。如果看到 eth1 报错,直接忽略,不影响优化。
第52行: 第50行:


=== 1.备份: ===
=== 1.备份: ===
<code>sudo cp /etc/fstab /etc/fstab.bak</code>  
<code>sudo cp /etc/fstab /etc/fstab.bak</code>
[[File:Io-5.png|center|thumb|1086x1086px]]
[[File:Io-5.png|center]]
 
=== 2.编辑文件: ===
=== 2.编辑文件: ===
<code>sudo nano /etc/fstab</code>  
<code>sudo nano /etc/fstab</code>  


修改前界面(注意看根目录那一行): [[index.php?title=File:Io-6.png|link=File:Io-6.png]]
修改前界面(注意看根目录那一行):
[[File:Io-6.png|center]]


在<code>defaults</code>后面加上 <code>,noatime,lazytime</code>
在<code>defaults</code>后面加上 <code>,noatime,lazytime</code>
 
[[File:Io-7.png|center]]
[[index.php?title=File:Io-7.png|link=File:Io-7.png]]


=== 3.保存退出: ===
=== 3.保存退出: ===
第74行: 第71行:
查看主磁盘(一般是 sda)
查看主磁盘(一般是 sda)


<code>lsblk</code>  
<code>lsblk</code>
 
[[File:Io-9.png|center]]
[[index.php?title=File:Io-8.png|link=File:Io-8.png]]


从上面截图中看到 sda 是 20G 的主磁盘。
从上面截图中看到 sda 是 20G 的主磁盘。
第92行: 第88行:
<code>echo "blockdev --setra 2048 /dev/sda" | sudo tee -a /etc/rc.local sudo chmod +x /etc/rc.local</code>  
<code>echo "blockdev --setra 2048 /dev/sda" | sudo tee -a /etc/rc.local sudo chmod +x /etc/rc.local</code>  


[[index.php?title=File:Io-10.png|link=File:Io-10.png]]
[[File:Io-10.png]]


[[index.php?title=File:Io-11.png|link=File:Io-11.png]]
[[File:Io-11.png]]
 
[[File:Io-12.png|center]]
[[index.php?title=File:Io-12.png|link=File:Io-12.png]]


== 五、MariaDB 简单调优 ==
== 五、MariaDB 简单调优 ==
第106行: 第101行:


=== 2.编辑核心配置文件: ===
=== 2.编辑核心配置文件: ===
<code>sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf</code>  
<code>sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf</code>
[[File:Io-14.png|center|thumb|974x974px]]
 
[[File:Io-14.png]]
 
修改前界面
修改前界面
[[File:Io-15.png|center|thumb|1024x1024px]]
[[File:Io-15.png|center]]
 
=== 3.在 [mysqld] 下加入以下内容: ===
=== 3.在 [mysqld] 下加入以下内容: ===
<code>innodb_buffer_pool_size = 256M</code>
<code>innodb_buffer_pool_size = 256M</code>
第117行: 第113行:


修改后界面(注意看 [mysqld] 下方新增的参数):
修改后界面(注意看 [mysqld] 下方新增的参数):
[[File:Io-16.png|center|thumb|1063x1063px]]
[[File:Io-16.png|center]]


=== 4.重启数据库: ===
=== 4.重启数据库: ===
第145行: 第141行:


<code>sudo mount -o remount / sudo rm /etc/rc.local</code>  
<code>sudo mount -o remount / sudo rm /etc/rc.local</code>  
[[Category:300 VPS 设置与管理 — VPS Setup and Management]]
[[Category:300 VPS 设置与管理 — VPS Setup and Management]]

2026年4月8日 (三) 08:23的最新版本


在搬瓦工基础款 VPS(1核 1G 内存)上跑 WordPress 或数据库应用时,经常会遇到后台操作卡顿的问题。主要原因是 Debian 12 默认的磁盘调度策略和数据库配置比较保守,没有充分利用 SSD 和有限内存。下面以 1核1G 内存的 Debian 12 VPS 为例,一步一步演示怎么优化。

    • 重要提醒**:优化前一定要先打快照!如果操作后不满意,可以随时回滚。

一、操作前准备

1. 登录 KiwiVM 面板。

2. 左侧菜单找到 Snapshots

3. 点击中间的 Create new snapshot 按钮。

打完快照后,看到列表里多了一条新的记录,状态是 Completed。这说明快照已经正常拍摄了,如果优化过程中遇到什么问题,可直接恢复快照。

二、调低 swappiness

Debian 12 默认 swappiness 是 60,系统比较喜欢用硬盘当内存。把它调低到 30,让系统更愿意用物理内存。

1.先备份配置文件:

bash sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak

回车后终端直接回到提示符,没有报错就说明备份成功了。

2.临时修改并验证:

输入下面命令并回车:

sudo sysctl -w vm.swappiness=30


会看到终端立刻输出一行 vm.swappiness = 30,这说明临时修改已经生效。

3.写入永久配置:

依次输入下面命令,每行输入完后按回车:

sudo sed -i '/vm.swappiness/d' /etc/sysctl.conf

echo "vm.swappiness=30" | sudo tee -a /etc/sysctl.conf sudo sysctl -p

最后一行输出 vm.swappiness = 30 就代表永久生效成功。如果看到 eth1 报错,直接忽略,不影响优化。

    • 验证**:输入 cat /proc/sys/vm/swappiness,看到 30 就成功了。

三、优化 fstab 挂载参数

Linux 默认每次读文件都要更新“最后访问时间”,会产生很多无用写操作。加上 noatime 和 lazytime 参数,让系统少写磁盘。

1.备份:

sudo cp /etc/fstab /etc/fstab.bak

2.编辑文件:

sudo nano /etc/fstab

修改前界面(注意看根目录那一行):

defaults后面加上 ,noatime,lazytime

3.保存退出:

先按Ctrl+O ,再按 回车 ,最后按 Ctrl+X,然后使修改生效:

sudo mount -o remount /

四、提升磁盘预读值

1.查看主磁盘:

查看主磁盘(一般是 sda)

lsblk

从上面截图中看到 sda 是 20G 的主磁盘。

2.设置预读值:

# 设定预读值(把sda换成上面上查查看的主盘)

sudo blockdev --setra 2048 /dev/sda

3.写入开机启动:

  1. 启动自动生效

echo "blockdev --setra 2048 /dev/sda" | sudo tee -a /etc/rc.local sudo chmod +x /etc/rc.local

五、MariaDB 简单调优

1.备份配置文件:

sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak ls -lh /etc/mysql/

2.编辑核心配置文件:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

修改前界面

3.在 [mysqld] 下加入以下内容:

innodb_buffer_pool_size = 256M

innodb_flush_log_at_trx_commit = 1

修改后界面(注意看 [mysqld] 下方新增的参数):

4.重启数据库:

sudo systemctl restart mariadb

    • 内存对照表**(根据实际内存调整):

- 1 GB 内存:推荐 256M -

2 GB 内存:推荐 512M–768M -

4 GB 及以上:推荐 1G 或物理内存的 50%

六、验证效果 + 完整回滚

1.验证效果:

sudo iotop -o

看 DISK READ/WRITE 数值是否明显下降。

2.完整回滚:

优化时出现问题时可执行以下命令恢复默认配置

sudo cp /etc/sysctl.conf.bak /etc/sysctl.conf

sudo sysctl -p sudo cp /etc/fstab.bak /etc/fstab

sudo mount -o remount / sudo rm /etc/rc.local