随着云计算的井喷式发展,云服务器的用户量暴增,企业用户和个人站长上云已经成了首选。用宝塔面板搭建云服务器使得运维成本也直线下降,可随着网站流量的增长,高并发大流量的网站会出现加载缓慢,卡顿,甚至还会出现“该页面无法显示”的尴尬状况,有钱的哥们可以选择升级高配置的服务器,没钱的哥们可以康康。
一、为 Linux 系统设置 Swap 虚拟内存
swap 是 Linux 系统的虚拟内存,客户访问网站实际是通过内存执行,云服务器内存有限,大流量访问会导致内存不足。为解决该问题,当物理内存不足时,系统就会自动调用硬盘来充当内存,以弥补内存的紧缺,这就是虚拟内存的作用。现在的云服务器大多都是 kvm 虚拟架构的,开启虚拟内存就更有必要( OVZ虚拟架构机器不可用此功能 )。当然如果童鞋是大佬级别,内存32G以上就不用考虑开启 swap 了。
开启方法:在宝塔面板左侧导航点击【 软件管理 】,然后点击顶部的系统工具中,在系统工具列表中找到 Linux 工具箱 1.5版本,点击最右侧的【 设置 】,然后在 Linux 工具箱窗口点击左侧的【 Swap/虚拟内存 】,填写 Swap 虚拟内存 大小,然后点击【确定】。宝塔官方建议 swap 容量在真实内存容量的1.5倍左右,若您的服务器内存大于4GB,可设 1-2GB 的固定值。
二、添加计划任务释放内存
释放内存就是将驻留在内存中的数据从内存中释放出来,提高内存资源的利用率,提升云服务器性能。宝塔面板已经考虑到了内存释放的问题,可以添加内存释放计划任务,让服务器每天或每周释放一次,释放PHP、MYSQL、PURE-FTPD、APACHE、NGINX的内存占用,建议在每天半夜执行,间隔时间根据自己网站的用户量及内存占用百分比来定。
释放方法:登陆宝塔面板点击左侧导航的【 计划任务 】,选择任务类型为释放内存,根据自己需要设置执行周期和执行时间,然后点击确定即可。
三、安装 PHP 缓存扩展
宝塔面板集成了 php 5.3 到 php7.3 版本,php 7.0 及以上版本进行了很多优化,处理速度更快,更高效稳定。常用的 hph 缓存插件有 Opcache 脚本缓存、Memcached 缓存和 redis 内容缓存。我们可以通过安装缓存插件来提升服务器的运行效率。缓存插件安装完成后,对对应网站进行缓存配置,一般在站点文件的 confing 文件中进行配置,即可提升网站访问速度。
opcache、xcache、apc 等脚本缓存扩展,请只安装其中1个,否则可能导致您的站点程序异常。但是 Memcached 和 redis 这两个内容缓存我们可以同时安装。我们也要切记,缓存扩展也并不是越多越好,凡事都得有一个度,超过这个度了,反而会拖慢 php 的执行效率。
安装方法:登录宝塔面板,在左侧导航菜单点击【 软件管理 】,找到您正在使用的 php 版本,点击右侧的 【 设置 】 ,进入php 管理界面,在php管理界面点击左侧的【 安装扩展 】,选择您需要的缓存进行安装。
四、php 配置优化
部分网站或者系统在运行的时候本身比较耗费内存,memory_limit 用来设置脚本内存的临界点,如果运行过程中脚本内存达到了临界点就会出现报错,但也不是说设置的越大越好,原则上脚本内存的设置不要超过云服务器的物理内存, 否则可能会导致启用磁盘 swap,服务器资源耗尽,最后死机。以用户量全球第一的 wordpress 为例,要跑的流畅的话把 memory_limit 脚本内存限制修改成 256M,这样 wordpress 会如鱼得水。
配置方法:登录宝塔面板,在左侧导航菜单点击【 软件管理 】,找到您正在使用的 php 版本,点击右侧的 【设置】 ,进入php 管理界面,在php管理界面点击左侧的【 配置修改 】,把 memory_limit 脚本内存限制修改成 256M,然后保存即可。
五、PHP 并发调整
并发量和日访问量是两个概念,所谓并发可以简单理解为同一秒访问网站的客户数量,假设并发设置为50,那您 1 分钟就可以有 3000 的访问量,日访问量也十分的牛X了,但也不是说并发设置的越大就越好,如果并发数设置过大,被 CC 攻击时服务器宕机挂掉的可能性也十分高了,子皓建议并发数设置不要超过 300 。php的并发调整是优化中至关重要的环节,宝塔面板里面自带了几个并发优化方案,一般 1 核 1G 内存的云服务器,设置 30 并发或 50 并发都可以。
设置方法:登录宝塔面板,在左侧导航菜单点击【 软件管理 】,找到您正在使用的 php 版本,点击右侧的【设置 】,进入php 管理界面,在php管理界面点击左侧的 【性能调整】,选择并发方案,然后保存即可。
六、MySQL 性能优化
服务器性能开销最大的是数据库开销,通过上述各项优化后,还远远不能承受高并发大流量的站点访问,我们需要对 MySQL 进行性能优化。宝塔面板非常人性化,内置了数据库性能优化方案,我们只需要鼠标轻点即可完成。进行性能一键优化后,保存并重启数据库,然后在当前状态进行观察,根据建议做适当的调整。
设置方法:登录宝塔面板,在左侧导航菜单点击【软件管理】,找到您正在使用的 MySQL 版本,点击右侧的 【设置 】,进入 MySQL 管理界面,在 MySQL 管理界面点击左侧的 【 性能调整 】,根据您的服务器配置选择优化方案,然后先保存再重启数据库即可。
Session 存储设置
Session 称为会话信息,位于web服务器上,主要负责访问者与网站之间的交互,当访问浏览器请求 http 地址时,将传递到web服务器上并与访问信息进行匹配,宝塔默认 Session 保存在指定的文件夹中,当用户访问时要从文件中检索 Session ID ,效率不高,宝塔面板可以把 Session 存储位置修改到 redis ,提高会话信息检索效率,减少响应时间。
设置方法:
- 先在第三步安装 redis 扩展,然后点击宝塔面板左侧导航【软件管理】,再点击顶部的【运行环境】,找到 redis 版本,点击右侧的【设置】,打开 redis 设置窗口,再点击 redis 窗口的左侧【性能调整】,在 requirepass 一栏输入密码,这个密码自己设置,越复杂越好,设置完成后复制你设置的密码,然后点击【保存】。
- 然后点击宝塔面板左侧导航【软件管理】,再点击顶部的【运行环境】,找到对应的 php 版本,点击右侧的【设置】,打开 php 管理窗口,在 php 管理窗口点击左侧的 【 Session设置 】,然后在密码位置粘贴上一步复制的密码,然后点击保存。