性能调整

有一系列用于OTOBO安装的性能增强技术,包括配置,编码,内存使用等。

工单索引模块

可以通过系统配置``Ticket :: IndexModule''设置工单索引模块,这里有两个后台模块可以为工单队列视图建立索引:

`` Kernel::System::Ticket::IndexAccelerator::RuntimeDB ``
默认选项是从工单列表动态生成队列,这样在你的系统中,未解决的工单数量不超过60,000的情况下,你不会遇到性能问题。
`` Kernel::System::Ticket::IndexAccelerator::StaticDB ``

当你有80,000张以上的工单时,应使用功能更强大的模块,它使用了额外的``ticket_index``表,该表将根据工单数据提取关键字。切换回后台,使用以下命令生成初始索引:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Ticket::QueueIndexRebuild

工单查询索引

OTOBO使用特殊的搜索索引,对不同通信渠道的文章中的各个字段进行全文搜索。

要创建初始索引,请使用以下命令:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Ticket::FulltextIndex --rebuild

Note

实际的文章索引是通过OTOBO守护程序在后台进行,虽然刚刚添加到系统中的文章会马上被添加初始索引标记,但可能它们的索引几分钟后才可以使用。

有一些选项可以对搜索索引进行微调:

`` Ticket::SearchIndex::IndexArchivedTickets ``
确认是否将已归档的工单包括在搜索索引中(默认情况下禁用)。建议在拥有已归档工单的大型系统上,索引尽量小。如果启用此选项,将可以通过全文搜索找到已归档的工单。
`` Ticket::SearchIndex::Attribute ``

基础全文字检索设置。

``Ticket::SearchIndex::Attribute`` Setting

Ticket::SearchIndex::Attribute 设置

Note

运行以下命令以便生成新的索引:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Ticket::FulltextIndexRebuild
`` WordCountMax ``
定义可以处理建立索引的最大单词数量,例如,文章正文中仅前1000个单词存储在文章搜索索引中。
WordLengthMin and WordLengthMax
字长边界,作为文章搜索索引中上下区间数值,只有在区间数据以内的单词才会存在索引中。
`` Ticket::SearchIndex::Filters ``

基于正则表达式的过滤器可从全文索引中排除部分原文。

``Ticket::SearchIndex::Filters`` Setting

Ticket::SearchIndex::Filters 设置

定义了三个默认过滤器:

  • 第一个过滤器会去除特殊字符,例如:,&<>? “!* |; []()+ $ ^ =
  • 第二个过滤器会去除以以下字符之一开头或结尾的单词:':。
  • 第三个过滤器会去除不包含单词字符的单词:a-z,A-Z,0-9,_
`` Ticket::SearchIndex::StopWords ``

全文索引的英语停用词,这些单词将从搜索索引中删除。

``Ticket::SearchIndex::StopWords###en`` Setting

Ticket::SearchIndex::StopWords###en 设置

有些语言定义了所谓的停用词。创建搜索索引时,将跳过这些停用词。

See also

如果您的语言不在系统配置设置中,或者您想添加更多单词,则可以将它们添加到此设置中:

  • `` Ticket::SearchIndex::StopWords###Custom ``

物品存放

对于电话,电子邮件和内部物品的存储,有两个不同的后端模块。可以在``Ticket :: Article :: Backend :: MIMEBase :: ArticleStorage``中配置使用过的物品存储空间。

`` Kernel::System::Ticket::Article::Backend::MIMEBase::ArticleStorageDB ``

这个默认模块将附件存储在数据库中,还可以与多个前端服务器一起使用,但是需要很多数据库存储空间。

Note

不要将其用于大型系统。

`` Kernel::System::Ticket::Article::Backend::MIMEBase::ArticleStorageFS ``

使用此模块可将附件存储在本地文件系统上。这样速度很快,但是如果你有多个前端服务器,则必须确保文件系统在服务器之间可以共享。可以将其放在NFS共享文件系统,当然最好放在SAN或类似解决方案上。

Note

建议用于大型系统。

您可以即时从一个后端切换到另一个。您可以在系统配置中切换后端,然后运行此命令行实用程序将物品从数据库放到文件系统上,或者以其他方式:

otobo> /opt/otobo/bin/otobo.Console.pl Admin::Article::StorageSwitch --target ArticleStorageFS

您可以使用 --target 选项指定目标后端。

Note

根据您拥有的物品数量、可用的CPU能力和/或网络容量,整个过程可能需要花费大量时间才能运行。

如果要将旧附件保留在数据库中,则可以激活系统配置选项``Ticket :: Article :: Backend :: MIMEBase :: CheckAllStorageBackends``以确保OTOBO仍然可以找到它们。

封存工单

由于OTOBO的数据可用作审查证据,因此删除已关闭的工单可能不是一个好主意,这项功能可让您封存工单。

符合特定条件的故障单可以标记为已存档。这样在你进行常规工单搜索或进行常规话务员工作时,不会访问这些工单。这样系统不再需要处理大量旧工单,而是仅考虑最新的工单,这可以在大型系统上获得巨大的性能提升。

要使用存档功能:

  1. 在系统配置中激活 ``Ticket::ArchiveSystem``设置。

  2. 定义通用话务员工作:

    • 单击*通用话务员*屏幕中的*添加工作*按钮。
    • 工作配置:为封存工作提供一个名字。
    • 自动化执行:为工作的时间安排选择合适的选项。
    • 选择票证:最好只归档几个月前就已经完成关闭的那些工单。
    • 更新/添加工单属性:将字段*将所选工单存档*设置为*存档工单*。
    • 将工作保存在页面末尾。
    • 单击概述表中的*运行此任务*的链接,查看受到影响的工单。
    • 点击*运行工作*按钮。

    Note

    手动运行这项工作最多可以修改5000张工单。

搜索工单时,系统默认只搜索未归档的工单。

要搜索已经归档的工单:

  1. 打款工单搜索界面。
  2. 将*归档搜索*设置为*未归档工单*或者*所有工单*。
  3. 进行搜索。

缓存

快速缓存模块在性能方面有很大的帮助,我们建议使用Redis Cache服务器或创建虚拟硬盘。

安装一个 Redis Cache服务器

  1. 安装Redis服务器

首先,你需要安装最新的Redis服务器。最简单的方法是在与OTOBO相同的主机上`配置Redis <https://redis.io/topics/quickstart>`__并将其绑定到其默认端口。

  1. 安装Redis Perl 模块或者Redis::Fast

你可以选择要使用的Redis模块:Redis`或`Redis :: Fast`(与`Redis`兼容,但**快2倍**)。请使用我们的``otobo.CheckModules.pl --list` 为您选择合适的软件包:

otobo> /opt/otobo/bin/otobo.CheckModules.pl --all
  1. 为Redis进行OTOBO设置

请使用OTOBO`SysConfig`(管理员->系统配置)正确配置OTOBO:

| Setting                       | Description                | Default value  |
| ----------------------------- | -------------------------- | -------------- |
| Cache::Redis###Server         | Redis server URL           | 127.0.0.1:6379 |
| Cache::Redis###DatabaseNumber | Number of logical database | 0              |
| Cache::Redis###RedisFast      | Use or not Redis::Fast     | 0              |
| Cache::Module                 | Activate Redis Cache Module| DB (use Redis) |

虚拟磁盘缓存

OTOBO在/ opt / otobo / var / tmp中缓存了许多临时数据,请确保这里使用的是高性能的文件和存储系统。如果你有足够的RAM,也可以尝试将此目录放在如下所示的虚拟磁盘上:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Session::DeleteAll
otobo> /opt/otobo/bin/otobo.Console.pl Maint::Cache::Delete
root> mount -o size=16G -t tmpfs none /opt/otobo/var/tmp

Note

在``/ etc / fstab``中添加持久挂载点。

Warning

这不是一个永久性存储,将会在服务器重启时丢失,从而你的所有会话(如果你将它们存储在文件系统中)和缓存数据都会丢失。

集群

对于非常高的生产负载,可能需要在多个前端服务器的群集上运行OTOBO,这项工作很复杂,也有很多陷阱。因此,Rother OSS专门在其 管理OTOBO 环境中为集群应用提供支持。