昨天买了个 Vultr $2.5/月的配置,只有 Miami 可以选。第一个 IP,被干掉了。删掉重建,SSH 能正常连接,不过感觉速度比前阵子 NewYork 的 2.5 配置速度要慢。
安装完 LNMP 1.4 升级 PHP 7.2.3 失败;LNMP 1.5 beta 直接安装 PHP 7.2.3 也是失败。看安装日志,有下面的错误提示:
cc: internal compiler error: Killed (program cc1) Please submit a full bug report,
Google 一下,有收获。应该是开启了 fileinfo,内存不足,被 Killed。
How to Fix PHP Configure “CC Internal error Killed (program cc1)” Error 提到有两个解决方法:1、增加内存;2、禁用“fileinfo”(./configure 加入 –disable-fileinfo)
方法二没试,方法一,加物理内存是要钱的,不掏钱只能增加虚拟内存——SWAP。
检查 SWAP 空间
swapon -s
返回信息概要是空,表示 Swap 文件不存在。检查才发现 Vultr 这个机子没有 SWAP。
free -m
看到 SWAP 是 0.
检查文件系统
添加 SWAP 文件前,有必要检查一下文件系统,看是否有足够的硬盘空间来添加 SWAP。
df -hal
检查返回信息,剩余硬盘空间足够即可。
添加并启用 SWAP
使用 dd 命令来创建 SWAP 文件。(378M)
dd if=/dev/zero of=/var/swapfile bs=1024 count=378k
参数解读:
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file > bs=bytes:同时设置读入/输出的块大小为 bytes 个字节 count=blocks:仅拷贝 blocks 个块,块大小等于 bs 指定的字节数。
格式化并激活 SWAP
上面创建好 SWAP 文件需要格式化后才能使用。命令:mkswap /var/swapfile
激活 SWAP 命令:swapon /var/swapfile
再次运行命令:swapon -s
会有类似下面的返回信息
Filename Type Size Used Priority /var/swapfile file 387068 0 -2
开机/重启自动挂载 SWAP
需要修改 fstab 配置,用 vi 打开 /etc/fstab 文件,在其最后添加如下一行:
/var/swapfile swap swap defaults 0 0
或者直接执行命令添加:echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
然后赋予 SWAP 文件适当的权限:
chown root:root /var/swapfile && chmod 600 /var/swapfile
合理设置 swappiness
合理设置 Linux SWAP 空间的 swappiness ,可以降低对硬盘的缓存,有效利用物理内存。
Linux 会使用硬盘的一部分做为 SWAP 分区,用来进行进程调度——进程是正在运行的程序;把当前不用的进程调成“等待(standby)”,甚至“睡眠(sleep)”,一旦要用,再调成“活动(active)”,睡眠的进程就会在 SWAP 分区,把内存空出来让给“活动”的进程。
如果内存够大,应当告诉 Linux 不必太多使用 SWAP 分区,可以通过修改 swappiness 参数来设置。swappiness=0 表示最大限度使用物理内存,然后才使用 SWAP;swappiness=100 表示积极使用 SWAP,并且把内存上的数据及时搬运到 SWAP 空间。
命令:cat /proc/sys/vm/swappiness 可以查询系统当前 swappiness 值。我把它设置为 22,可以根据实际修改。
打开 vi /etc/sysctl.conf
文档最后加上一行:
# Search for the vm.swappiness setting. Uncomment and change it as necessary.
vm.swappiness=22
Esc,:wq,保存退出 vi,重启一下系统即可。
参考文章
DigitalOcean - How To Add Swap on CentOS 6
秋水逸冰 - DigitalOcean:如何在CentOS中添加Swap
yungke Li 'blog - 如何在 Vultr 中添加 SWAP 交換分區
小星星 - cc: internal compiler error: Killed解决办法
后记:添加 SWAP 后重新升级 PHP,顺利升级成功。
脚本一键添加 swap
提示:脚本不支持OpenVZ架构,安装会自动退出。
脚本作者:https://www.94ish.me/1820.html
运行命令:
wget https://cyhour.com/file/sh/swap.sh && bash swap.sh
然后根据选项进行操作,记得添加swap的时候填写纯数字,默认单位为 M。
代码 ▼展开
#!/usr/bin/env bash
#Blog:https://www.moerats.com/
Green="\033[32m"
Font="\033[0m"
Red="\033[31m"
#root权限
root_need(){
if [[ $EUID -ne 0 ]]; then
echo -e "${Red}Error:This script must be run as root!${Font}"
exit 1
fi
}
#检测ovz
ovz_no(){
if [[ -d "/proc/vz" ]]; then
echo -e "${Red}Your VPS is based on OpenVZ,not supported!${Font}"
exit 1
fi
}
add_swap(){
echo -e "${Green}请输入需要添加的swap,建议为内存的2倍!${Font}"
read -p "请输入swap数值:" swapsize
#检查是否存在swapfile
grep -q "swapfile" /etc/fstab
#如果不存在将为其创建swap
if [ $? -ne 0 ]; then
echo -e "${Green}swapfile未发现,正在为其创建swapfile${Font}"
fallocate -l ${swapsize}M /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap defaults 0 0' >> /etc/fstab
echo -e "${Green}swap创建成功,并查看信息:${Font}"
cat /proc/swaps
cat /proc/meminfo | grep Swap
else
echo -e "${Red}swapfile已存在,swap设置失败,请先运行脚本删除swap后重新设置!${Font}"
fi
}
del_swap(){
#检查是否存在swapfile
grep -q "swapfile" /etc/fstab
#如果存在就将其移除
if [ $? -eq 0 ]; then
echo -e "${Green}swapfile已发现,正在将其移除...${Font}"
sed -i '/swapfile/d' /etc/fstab
echo "3" > /proc/sys/vm/drop_caches
swapoff -a
rm -f /swapfile
echo -e "${Green}swap已删除!${Font}"
else
echo -e "${Red}swapfile未发现,swap删除失败!${Font}"
fi
}
#开始菜单
main(){
root_need
ovz_no
clear
echo -e "———————————————————————————————————————"
echo -e "${Green}Linux VPS一键添加/删除swap脚本${Font}"
echo -e "${Green}1、添加swap${Font}"
echo -e "${Green}2、删除swap${Font}"
echo -e "———————————————————————————————————————"
read -p "请输入数字 [1-2]:" num
case "$num" in
1)
add_swap
;;
2)
del_swap
;;
*)
clear
echo -e "${Green}请输入正确数字 [1-2]${Font}"
sleep 2s
main
;;
esac
}
main
有入手一枚 是做备用?
@灰常记忆 做垃圾站,哈哈!!!
我有一台 NJ的,不过已经删除了,ping太高了。= =、虽然加上BBR之后好多了,但是还是算了。= =、
@姜辰 嗯,NY 2.5 又有货了,ping 值比迈阿密的要低那么一点,速度也快点。
说起来我的vultr该续费了。。
@牧羊人 用的哪个机房?速度还行?
@老头 忘了,速度……还算OK吧~
添加 SWAP 效果明显吗?
@山小炮 SWAP 速度肯定没有内存快啊,但是内存小只能加点 SWAP。