在大多数情况下,SuiteCRM 的性能不会成为问题。但是,对于大型数据集或具有许多用户的系统,您可能会注意到性能有所下降。这些更改可以帮助提高性能。
服务器
当然,就您期望的性能而言,运行 SuiteCRM 的服务器非常重要。有关服务器设置的完整指南超出了本书的范围。但是,您可以采取一些措施来确保从 SuiteCRM 中获得最佳性能。
PHP
安装 PHP 操作码缓存将提高所有 PHP 文件的性能。这些缓存通过缓存 PHP 文件的编译来工作,从而减少每个请求的工作量。此外,SuiteCRM 将使用一些 PHP 加速器的缓存 API,这将进一步提高性能。如果您使用的是 Linux,那么 APC 是通常的选择。Windows 用户应该查看 高速缓存。
MySQL
MySQL 以默认设置太小而臭名昭著。全面优化 MySQL 超出了本书的范围(不过,请查看 mysqltuner.pl(MySQL性能优化利器:是用于分析和优化MySQL数据库性能的软件工具)一个有用的 Perl 脚本,它将提供设置建议 – 请注意,在运行来自未知来源的文件时应小心谨慎)。 一个可以带来巨大变化的小变化是增加innodb_buffer_pool_size
。
mysqltuner.pl:一款免费的Perl脚本工具,用于检查和优化MySQL服务器的配置参数。MySQLTuner会分析MySQL的状态和配置,提供建议来改进性能和安全性。
mysqltuner.pl的特点和功能
- 配置建议:mysqltuner.pl会分析MySQL服务器的配置参数,并提供针对这些参数的建议。它会检查各个参数的设置,并根据最佳实践和性能优化原则,给出相应的建议。这些建议可以帮助您优化服务器配置以获得更好的性能和安全性。
- 性能建议:除了配置参数,mysqltuner.pl还会分析MySQL服务器的性能指标,如查询缓存命中率、连接数、临时表使用等。它可以提供有关性能瓶颈和优化机会的建议,帮助您识别潜在的性能问题并采取相应的措施。
- 安全建议:mysqltuner.pl还提供有关MySQL服务器安全性的建议。它会检查安全相关的配置参数和权限设置,并给出改进安全性的建议。这有助于确保MySQL服务器的安全性并防止潜在的安全漏洞。
- 自动化分析:mysqltuner.pl是一个自动化的工具,可以在您的MySQL服务器上运行,并生成相应的报告。它会收集服务器的状态和配置信息,并对其进行分析和评估。生成的报告中包含详细的建议和统计信息,供您参考和采取相应的措施。
上传运行此脚本的linux服务器并赋予执行权限
chmod 755 mysqltuner.pl
2、执行分析
[root@mysqlserver ~]# perl ./mysqltuner.pl --host 192.168.209.128 --port 3307 --user root --pass 'Rootasdf2023##'
参数说明:
- –host:指定连接的主机
- –port:主机端口
- –user:数据库用户
- –pass:数据库的密码
如果您已经迁移或导入了大量数据,则某些表可能会出现碎片。运行 OPTIMIZE TABLE tablename
可以提高性能。
索引
在模块字段上添加索引可以提高数据库性能。核心模块通常有重要字段被编入索引。但是,如果您创建了新模块或向模块添加了新的、经常搜索的字段,那么这些字段可能会受益于被编入索引。请参阅vardefs章节添加索引。
配置变更
以下是一些可用于提高性能的配置设置。请注意,在大多数情况下,通过首先按照前面部分中的步骤操作,您将获得更好的性能提升。这些设置应在 config_override.php 文件中设置。请参阅配置文件以获取更多信息。
$sugar_config['developerMode'] = false;
除非您正在实例上积极开发,否则 developerMode 应该关闭。否则每个页面请求都会导致重新加载缓存文件。
$sugar_config['disable_count_query'] = true;
对于拥有大量数据的系统,用于分页控件的子面板上的计数查询可能会变得很慢,从而导致页面加载缓慢或完全缓慢。禁用这些查询可以显著提高某些页面的性能。
$sugar_config['disable_vcr'] = true;
默认情况下,从列表视图打开记录的详细视图也会加载列表中的其他记录,以便轻松浏览记录。如果您不使用此功能,或者加载某些记录的详细视图变得很慢,您可以禁用此功能。
$sugar_config['list_max_entries_per_page'] = '10';
可以减少列表视图每页显示的记录数。这将略微提高列表视图页面的性能。
$sugar_config['logger']['level'] = 'fatal';
降低日志级别意味着每次请求时写入磁盘的日志消息会减少。这会稍微(非常稍微)提高性能。