
























本文是连续更新系列,根据《任霏博客网站程序2020年度大更新》分为网络地域选择、云服务器配置优化、环境搭建优化(JVM)、缓存策略优化、SpringBoot配置优化、前端页面优化等方面分别讨论。
注:本文只根据我的个人经验分享,并非专业测评,部分内容不够专业还请谅解。
上一篇讲了网络的选择,这一篇就讲服务器的选择和配置优化,云服务器的类型非常多,但都面向不同的使用场景,我在这里只介绍我自己的使用场景,各位请根据自己的实际情况酌情参考。
首先我们需要知道自己的需求,如果不讨论使用场景直接给你推荐云服务器的都是耍流氓。我自己的需求分析如下:
服务器上运行底层是Docker容器,容器中有:我自己写的SpringBoot应用程序、一个MariaDB数据库、一个Redis数据库、一个Maven私服。
根据上面自己的需求分析,我需要的服务器基本是 2核4G内存 的,再多也是浪费,少了跑不起来,接下来就去云市场看看各个种类的服务器哪些适合我了。
由于我比较熟悉阿里云,我就拿阿里云来说了,这不是广告推荐,只是我目前熟悉阿里云,请各位自行酌情考虑。
根据上面的场景需求分析,我只需要普通的服务器就够了,所以选择架构为「x86」,分类选择「共享型」就足够,这里共享型又分了好几个系列:共享标准型 s6、突发性能实例 t6 、突发性能实例 t5,以我的使用经验,说一下他们的区别:
所以按照我的需求,「突发性能实例」更适合我,但又分 t6和t5 的规格,他们的差别在内网带宽和CPU上:
我的使用场景里对CPU的依赖不高,所以对CPU的性能不是很敏感,但因为有Maven私服,对带宽很敏感,这俩个的描述,一个是「0.5 Gbps」一个是「最高 1 Gbps」,经过我的测试,问题就出现这个描述词「最高」他只说了最高,却没有保证最低,所以我买的t6规格只有「0.08Gbps」,选择谁不用说了,我选择「突发性能实例 t5」2核4G内存。
上面选好了要购买的规格,就开始选择周边的配置了,操作系统、硬盘和网络带宽。
操作系统一般就是CentOS或者Ubuntu,因为我需要在上面跑Docker,经过我查询资料,感觉Ubuntu上面跑Docker效率更高一些,所以我选择了Ubuntu,如果你是企业应用,还是乖乖选择CentOS,它两的风格不一样,感觉CentOS更追求稳定,更新很小,Ubuntu更新更快,感觉CentOS是稳如老狗,Ubuntu是年轻时尚,我自己的东西,我选择年轻时尚的Ubuntu。
硬盘方面有三种选择,高效云盘、ESSD云盘、SSD云盘,我来解释一下各自的差别:
由于我存储的数据不是很多,并且上面还运行了数据库,数据库对磁盘IO比较敏感,我就选择了 ESSD云盘,性能等级选择 PL1 的。
由于我自己配置了VPC专有网络云交换机,所以公网带宽先不选,后期再配置公网网关和弹性IP。
毕竟4G的内存不是很多,比较紧,万一满了会造成程序崩溃,所以我们还需要配置SWAP分区,当内存满了的时候,可以使用一部分硬盘来顶上,阿里云默认是没有开启SWAP分区的。因为阿里云的硬盘是多份备份,如果把硬盘当作内存来用会给云硬盘造成很大的压力,所以默认是不开启的,但我们仍然可以手动开启,一般设置为内存的两倍,我是4G内存所以再设置一个8G的SWAP。
查看是否有SWAP,可以使用如下命令:
free -m
1. 分配文件空间
建立一个 8G 的 swap 所需的文件空间,位置在 /swap
dd if=/dev/zero of=/swap bs=1G count=8
2. 文件 swap 格式化
mkswap /swap
3.启用此交换分区的交换功能
swapon /swap
注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
4.设置开机时自启用 SWAP 分区
需要修改文件 /etc/fstab 中的 SWAP 行,添加
/swap swap swap defaults 0 0 此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。