目次
概要
以下はOTRS導入のための強化テクニックのパフォーマンスのリストです。構成、コーディング、メモリー使用、その他を含みます。
OTRSのパフォーマンスを改善するいくつかのオプションがあります。
There are two backend modules for the index for the ticket queue view:
Kernel::System::Ticket::IndexAccelerator::RuntimeDB
This is the default option, and will generate each queue view on the fly from the ticket table. You will not have performance trouble until you have about 60,000 open tickets in your system.
Kernel::System::Ticket::IndexAccelerator::StaticDB
The most powerful module, should be used when you have above 80,000 open
tickets. It uses an extra ticket_index
table, which will
be populated with keywords based on ticket data. Use
bin/otrs.RebuildTicketIndex.pl
for generating an
initial index after switching backends.
You can change the used IndexAccelerator module via SysConfig.
This module helps to extend your articles full-text search (From, To, Cc, Subject and Body search). There are two backend modules for the search index:
Kernel::System::Ticket::ArticleSearchIndex::RuntimeDB
This is the default option, and will will do full-text searches on live data (it works fine for up to 50,000 tickets).
Kernel::System::Ticket::ArticleSearchIndex::StaticDB
This module will strip all articles and build an index after article creation, increasing performance of full-text searches up to 50%.
You can change the used SearchIndexModule via SysConfig.
To create an initial index, use
bin/otrs.RebuildFulltextIndex.pl
.
For StaticDB module, there are some options available for fine tuning:
Ticket::SearchIndex::Attribute
The attribute "WordCountMax" defines the maximum of words which will be processed to build up the index. For example only the first 1000 words of an article body are stored in the article search index. The attributes "WordLengthMin" and "WordLengthMax" are used as word length boundaries. Only words with a length between these two values are stored in the article search index.
Ticket::SearchIndex::Filters
There are three default filters defined:
The first filter strips out special chars like: , & < > ?
" ! * | ; [ ] ( ) + $ ^=
The second filter strips out words which begin or ends with one of following
chars: ' : .
The third filter strips out words which do not contain a word-character:
a-z, A-Z, 0-9, _
Ticket::SearchIndex::StopWords
There are so-called stop-words defined for some languages. These stop-words will be skipped while creating the search index.
チケット・記事記憶装置用の2つの異なるバックエンド・モジュールがあります:
Kernel::System::Ticket::ArticleStorageDB
This default module will store attachments in the database.
Don't use it with large setups.
Pro: If your web server isn't running under 'otrs' user, use this module to avoid file permission problems.
Con: It is not advisable to store attachments in your database. Take care
that your database is able to store large objects. I.e.: configure MySQL
with set-variable = max_allowed_packet=8M
to store 8 MB
objects (the default is 2M).
Kernel::System::Ticket::ArticleStorageFS
Use this module to store attachments on the local file system.
Recommended for large setups.
賛成意見: 速いですね!
Con: Your web server should run under the 'otrs' user. Also, if you have multiple front-end servers, you must make sure the filesystem is shared between the servers. Place it on an NFS share or preferably a SAN or similar solution.
You can switch from one back-end to the other on the fly. You can switch the
backend in the SysConfig, and then run the command line utility
otrs.ArticleStorageSwitch.pl
to put the articles from
the database onto the filesystem or the other way around. You can use the
-s and -d options to specify the
source and destination back-ends. Please note that the entire process can
take considerable time to run, depending on the number of articles you have
and the available CPU power and/or network capacity.
shell> bin/otrs.ArticleStorageSwitch.pl -s ArticleStorageDB -d ArticleStorageFS
スクリプト:記憶バックエンドをデータベースからファイルシステムまで切り替えること。
監査に耐えうるシステムとしてOTRSを使うならば、完了したチケットを削除することはよい考えとはいえません。そのため我々はチケットをアーカイブすることができる機能を実装しました。
Tickets that match certain criteria can be marked as "archived". These tickets are not accessed if you do a regular ticket search or run a Generic Agent job. The system itself does not have to deal with a huge amount of tickets any longer as only the "latest" tickets are taken into consideration when using OTRS. This can result in a huge performance gain on large systems.
アーカイブ機能を使用するには次のステップに従います:
SysConfigのアーカイブシステムを活性化します。
管理者ページで、SysConfigに行って、グループ・チケット
を選択してください。Core::Ticket
では、デフォルトで「no」にセットされるオプションTicket::ArchiveSystem
を見つけます。この設定を「yes」に変更し変更を保存します。
GenericAgentジョブを定義する
管理者ページでGenericAgentを選択し新規ジョブをそこへ追加します。
ジョブ設定
アーカイブに保管するジョブの名前を与え、この仕事を予定する適切なオプションを選択してください。
チケット・フィルタ
チケット・フィルタは選択された基準と一致するチケット検索です。完了した状態(数か月前に完了したた)のチケットのみをアーカイブするのは良い考えです。
チケット・アクション
このセクションでは、「選択したチケットをアーカイブ」「チケットをアーカイブ」とラベルしたフィールドをセットしてください。
仕事を保存する
ページの終わりに、仕事を保存するオプションを見つけるでしょう。
影響を受けたチケット
システムは、一般担当者のジョブを実行する時にアーカイブされる全てのチケットを表示します。
チケット検索
チケットを検索する場合、システムはデフォルトでアーカイブに保管されないチケットを探索します。さらにアーカイブに保管されたチケットを捜したい場合は、検索基準を定義する時に単に「archive search」を加えてください。
OTRS caches a lot of temporary data in
/opt/otrs/var/tmp
. Please make sure that this uses a
high performance file system/storage. If you have enough RAM, you can also
try to put this directory on a ramdisk like this:
shell> /opt/otrs/bin/otrs.CleanUp.pl shell> /opt/otrs/bin/otrs.DeleteCache.pl shell> sudo mount -o size=16G -t tmpfs none /opt/otrs/var/tmp # add persistent mount point in /etc/fstab
Please note that this will be a non-permanent storage that will be lost on server reboot. All your sessions (if you store them in the filesystem) and your cache data will be lost.
There is also a centralized memcached based cache backend available for purchase from OTRS Group.