Bitrix CMS 性能优化指南
如果您正考虑提高基于 Bitrix CMS 的网站性能,第一步是将网站迁移到安装有 Bitrix7 系统的服务器上。您可以通过控制面板轻松创建带有 Bitrix7 系统的服务器。
您可以选择自行迁移网站,或者寻求我们专家的帮助。
CMS 端的配置
网站完成迁移后,即可开始对 CMS 进行优化配置。
- 确保“系统检查 (System Check)”部分没有任何错误记录。
- 检查“Bitrix”选项卡下的“性能面板 (Performance Panel)”。此处应选择“Bitrix (最佳) (Optimal)”值。
- 将数据库表类型更改为 InnoDB 并执行数据库优化。在操作之前,请务必先创建数据备份。
服务器端的配置
接下来,我们进入服务器层面的设置。
- 使用 root 用户凭据通过 SSH 连接到服务器。
- 使用以下命令启动 Bitrix 虚拟环境菜单:
~/menu.sh
- 选择选项 4. Configure memcached servers。
- 系统将开始安装 memcached。在安装过程中,需要指定服务器的 hostname。请输入屏幕表格中显示的 ServerName 值。
- 安装完成后,配置 /etc/sysconfig/memcached 配置文件。
使用文本编辑器打开该文件(例如使用 nano):
nano /etc/sysconfig/memcached
如果系统中没有 nano,可以使用 yum install nano 命令安装,或者使用服务器上已有的其他编辑器(如 vim)。
设置以下参数:
# 最大并发连接数(默认为 1024)
MAXCONN = "1024"
# 分配给缓存的内存大小(单位为 MB,建议根据 RAM 大小调整)
CACHESIZE = "1024"
# memcached 的线程数
OPTIONS = "-t 4"
保存更改。
- 使用以下命令重启服务:
systemctl restart memcached.service
- 在 /bitrix/php_interface/dbconn.php 文件中添加 memcached 连接配置。执行以下命令:
nano /网站根目录路径/bitrix/php_interface/dbconn.php
将 网站根目录路径 替换为您系统中的实际路径,并在文件中添加以下参数:
define("BX_CACHE_TYPE", "memcache");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
define("BX_MEMCACHE_HOST", "127.0.0.1");
define("BX_MEMCACHE_PORT", "11211");
保存更改。
- 打开 /bitrix/.settings_extra.php 文件(如果该文件不存在,执行同样的命令将创建一个新文件):
nano /网站根目录路径/bitrix/.settings_extra.php
在文件中添加以下参数:
<?php
return array(
'cache' => array(
'value' => array(
'type' => 'memcache',
'memcache' => array(
'host' => '127.0.0.1',
'port' => '11211',
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
);
?>
保存更改。
注意: memcached 配置不当可能会对性能产生负面影响。如果您发现性能下降,可以尝试调整第 5 步中 /etc/sysconfig/memcached 配置文件里的数值。
- 为了进一步提升网站性能,除了启用 memcached 外,还可以将 MySQL 的临时文件目录移动到 RAM 磁盘 (RAM-disk) 中。
请按照以下步骤操作:
9.1. 创建临时文件目录,例如 /var/lib/mysql/tmp:
mkdir /var/lib/mysql/tmp
9.2. 将该目录的所有者和所属组更改为 mysql:
chown mysql:mysql /var/lib/mysql/tmp
9.3. 获取 mysql 用户的用户标识符 (uid) 和组标识符 (gid):
id mysql
9.4. 编辑 /etc/fstab 文件:
nano /etc/fstab
在文件末尾添加一行,填入上一步获取的 ID 值:
tmpfs /var/lib/mysql/tmp tmpfs rw,gid=27,uid=27,size=1G,nr_inodes=10k,mode=0700 0 0
size 参数的值应根据您可用的物理内存量进行设置。
9.5. 挂载新的 tmpfs 分区:
mount /var/lib/mysql/tmp
9.6. 修改 MySQL 配置文件 /etc/mysql/my.cnf,添加以下行:
tmpdir=/var/lib/mysql/tmp
9.7. 重启 MySQL 服务:
systemctl restart mysqld
- 在 /etc/mysql/conf.d/z_bx_custom.cnf 文件中添加以下参数:
innodb_flush_log_at_trx_commit = 0
该参数允许使用延迟事务提交,能显著提高写入速度。