宝塔面板教程大全–宝塔linux面板性能设置

网站公告宝塔linux面板性能设置,宝塔面板教程大全

宝塔面板教程大全–宝塔linux面板性能设置

教程总目录:宝塔面板教程大全

性能设置:

内存清理:

添加计划任务,定时清理内存,可以设置为每天一次,时间建议选择在网站访客最少的时间段,个人建议凌晨4点30分左右。(清理内存时,正在访问的访客可能会出现404)

添加Swap交换分区(类似于Windows的虚拟内存):

Swap推荐值:
物理内存 Swap
512M   1024M
1GB    1500M
2GB    2048M
4GB    4096M
6GB+  4096M

建议不要设置过高,这个内存是在磁盘上虚拟的,速度较慢,当我们服务器内存足够时尽量使用服务器内存

PHP扩展相关:

若您的程序不需要PATH_INFO,请把它关闭

若确定您的程序不需要,尽量不要安装ZendGuardLoader,ioncube解密扩展

若程序支持,尽量安装fileinfo、exif扩展,以提升站点性能和安全性

若程序支持,尽量使用imagemagick代替PHP自带GD,以提升性能

安装PHP缓存扩展,根据即将部署的站点需求,尽量使用更高的PHP版本,另外缓存安装建议如下:
脚本缓存:xcache、opcache 任选一项安装,PHP5.2-5.4建议使用xcache,PHP5.5以上建议使用opcache
内容缓存:若程序支持,建议优先顺序如下: redis > apc > memcached > memcache
注意:内容缓存和脚本缓存,都各只安装一个,不要安装多个!

PHP并发调整建议:

PHP并发调整建议
PHP并发调整建议

注1:容易受到CC攻击的站点使用的PHP版本,尽量不要设置过高的并发,以免服务器被打死
注2:VPS性能参差不齐,以上建议仅供参考,请根据实际使用效果自行调整
注3:不建议设置超过300并发上限,哪怕您的服务器性能足够好;若发现并发不够用,请尝试优化站点数据库缓存可能更有效。

MySQL数据库性能设置

因为mysql是网站数据的核心,所以以下操作在进行之前,首先进行数据备份。防止数据意外丢失。

PHP加上mysql的环境经常会遇到各种性能问题,常见的有CPU、mysql、php、磁盘IO、缓存等各个方面。在这些问题当中mysql是最常见也最难解决的一种。

常见的mysql性能优化有使用Redis、Memcached等缓存扩展插件来解决。然而这些扩展使用的前提是网站程序支持,大多数程序并不能够完美支持这些插件。

今天就写下mysql本身配置方面的性能优化。

通常mysql性能优化有以下几个部分:

1、MySQL配置参数调优 (需要根据网站运行情况调整)
2、数据表索引调优 (效果明显,但通常优秀的开源程序都不需要调整)
3、SQL语句调优 (这是程序员或DBA干的事)

今天就研究下mysql本身配置的性能调整。

图一

mysql数据库运行状态
mysql数据库运行状态

图二

mysql数据库性能设置
mysql数据库性能设置

参数解读:

1、活动/峰值连接数
(图1)中当前活动的连接为1个,自MySQL服务启动以来,最高连接数为54;当最高连接数接近或等于(图2)中的max_connections时,应适当增加max_connections,需要注意的是,不要一下子增加过多,建议每次增加50,观察一段时间,不够再继续增加。

2、线程缓存命中率
(图1)中线程缓存命中率为99.78%,若这个值小于90%,建议适当增加(图2)中的thread_cache_size,建议每次增加8。

3、索引命中率
(图1)中索引命中率为99.50%,若这个值小于95%,建议适当增加(图2)中的key_buffer_size,建议每次增加64,需要说明的是,若您的数据库使用的是Innodb引擎,可忽略这个选项

4、Innodb索引命中率
(图1)中Innodb索引命中率为100%,若这个值小于95%,建议适当增加(图2)中的innodb_buffer_pool_size,建议每次增加64,需要说明的是,若您的数据库没有使用Innodb引擎,可忽略这个选项

5、查询缓存命中率
MySQL查询缓存是个比较受争议的功能,个人建议当你有在使用redis、memcached等缓存软件时,在(图2)中将query_cache_size设为0可以将其关闭,当你没有使用缓存软件,有多余的内存使用,且数据库瓶颈明显存在时,可以尝试开启查询缓存,这是个非常依赖数据表结构及SQL语句优化的功能,若数据表结构和SQL语句都针对查询缓存进行过优化,它的效果还是很不错的。

6、创建临时表到磁盘
(图1)中创建临时表到磁盘的比例是0.42%,这说明大部分临时表创建到内存了,不会过多增加磁盘IO的开销,建议,当比例大于2%时适当增加(图1)中的tmp_cache_size,建议每次增加32,当比例大于60%时,放弃吧,有些开源程序并没有专门优化过SQL语句,所以在运行过程中会开启大量临时表,加多少缓存都是不够用的。

7、已打开的表
当(图1)中的已打开的表接近或等于(图2)中的table_open_cache时,可以适当增加table_open_cache,但若设置过大可能导致您的程序频繁中断MySQL连接,建议在1024以内,最大不要超过2048。

8、没有使用索引的量、没有使用索引的JOIN量
若不为0,就检查下数据表索引吧,其实只要没有疯涨,比如一天增涨几千,一般可以忽略,必竟优化索引还是程序员或DBA去干比较合适。

9、排序后的合并次数
如果这个值在缓慢增张,建议适当增加(图2)中的sort_buffer_size,建议每次增加512,但最大不要超过8192,如果这个值一直在疯涨,增加sort_buffer_size也没用,就放弃这个选项吧,这个锅还是给程序开发者背。

10、锁表次数
如果服务器CPU开销不大的情况下,疯狂锁表,建议你将所有数据表转换成innodb,记得转换前备份。

11、优化方案
这个是根据内存大小给的一个推荐优化方案,仅是建议仅用于基础参考值,还是要根据实据情况来调整每一个配置项。

注意:保存参数配置后不会立即生效,记得要重启MySQL服务。

MySQL数据库版本建议:

CPU/内存 数据库
1H/512M  MySQL5.1
1H/1G       MySQL5.1/5.5
2H/2G      MySQL5.1/5.5
2H/4G      MySQL5.5/5.6
4H/4G+   MySQL5.5/5.6/5.7

数据库性能设置建议:

mysql数据库性能设置建议
mysql数据库性能设置建议

这里的性能设置可以直接选择宝塔面板自带的优化方案,然后等站点运行一段时间后查看数据库当前状态,根据状态报告来进行更细节的调试。

注意:此项设置需要保存多次才生效,同时保存多次后需要重启一次数据库!

Posted by 柴郡猫