创建和配置Swap
Linux下的swap有两种实现形式,一种是通过某个物理磁盘分区来实现swap,另一种是通过虚拟内存文件来实现swap。接下来我们就只介绍使用文件来实现swap。
当系统内没有剩余可用的分区时我们可以用在Linux的某个目录下创建一个空白文件,通过把这个文件格式化成swap从而实现创建swap的过程。
1、通过dd命令在/tmp/目录下新增加一个4G大小的空文件(大小需要根据自己服务器的物理内存来决定)。
# dd if=/dev/zero of=/tmp/swap bs=1M count=4096 #增加一个4G大小的空文件
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 31.7584 s, 135 MB/s
# chmod 600 /tmp/swap #修改文件权限,只有root读写
# ls -lh /tmp/swap #查看创建的文件大小和权限
-rw------- 1 root root 4.0G Jun 14 17:01 /tmp/swap
2、使用mkswap命令把创建的文件格式化为swap
# mkswap /tmp/swap
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=4593bbdb-10dd-49cf-8e3c-118bb3350809
3、使用swapon命令使swap生效
# swapon /tmp/swap
# swapon -s
Filename Type Size Used Priority
/tmp/swap file 4194300 0 -2 #创建成功
4、将新添加的交换分区添加到/etc/fstab文件中使之开机启动
根据不同的发行版将下面的内容添加到/etc/fstab中,添加完后最好用swapon -a命令查看添加的是否有问题
/tmp/swap none swap sw 0 0 #Debian9.5默认的格式,这里不要用UUID,这是因为系统只会查询块设备,不会查询文件
/tmp/swap swap swap defaults 0 0 #CentOS7-1810与openSUSE15默认的格式
使用 free -h
命令 查看添加Swap后
# free -h
total used free shared buff/cache available
Mem: 3.6Gi 381Mi 150Mi 2.0Mi 3.1Gi 3.0Gi
Swap: 4.0Gi 0B 4.0Gi # 添加完swap容量变成了4G
5、如果添加swap后,还是出现mysqld内存溢出被OOM
这时我们可以尝试修改Swappiness参数。Swappiness是关于swap使用率的参数,swappiness的值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。
查看swappiness使用命令 cat /proc/sys/vm/swappiness
。
修改Swappiness参数,通过vim打开 /etc/sysctl.conf文件,修改 vm.swappiness=10
,然后执行命令 sudo sysctl -p
激活设置。
扩展 – 还有一种方法修改Apache2配置文件
网站访问量不大的服务器,可以尝试修改Apache2配置文件(文件路径/etc/httpd/conf/httpd.conf)。Apache2目前有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式,分别是prefork,worker和event。
查看Apache2的MPM模式,可以使用命令 httpd -V
,若提示命令不存在。可以使用命令 ps -ef | grep httpd
查看httpd进程的全路径,然后通过这个进程的全路径进行 -V 操作,比如: /opt/lampp/bin/httpd -V
编辑/opt/lampp/etc/httpd.conf文件,添加下面内容:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 100
MaxRequestWorkers 100
MaxConnectionsPerChild 2000
</IfModule>
转载请注明:半亩方塘 » WordPress网站报错Error establishing a database connection(Linux服务器MySQL 服务自动停止的解决方法)