20130925 alfresco study18performancetuning
TRANSCRIPT
![Page 1: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/1.jpg)
とたに
2013©
Alfresco勉強会#18パフォーマンスチューニングのさわり
2013年9月25日
![Page 2: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/2.jpg)
2013.09..25 2013 ©
前口上
2
チューニングやサイジングって●環境ごとに正解が異なる●ノウハウとして囲い込みたいなどがあり、情報があまり流通していない
今日のゴール●Alfrescoのパフォーマンスチューニングのレバーがどれぐらいあるかを理解する。
Alfresco version●Alfresco Community Edition 4.2c●多分4.2dでも通用すると思います
![Page 3: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/3.jpg)
2013.09..25 2013 ©
システムのパフォーマンスとは
3
パフォーマンスの定義●信頼性●経済性●性能●... etc → パフォーマンスチューニングと言う場合には、”性能”を指している(はず)
“性能”とはシステム: インタラクティブ + 中央集権的な処理モデルの場合、ある使用状況(負荷)下でのスループット(1秒間あたりに処理可能なトランザクション/イベント数)目標値はSLAで締結...
![Page 4: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/4.jpg)
2013.09..25 2013 ©
スループット向上の考え方
4
対処すべきイベント
発生頻度
処理時間
![Page 5: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/5.jpg)
2013.09..25 2013 ©
対処すべきイベント種類の一般的な特徴
5
処理内でI/Oを伴う●ファイルの読み出し/書き出し●RDBMSアクセス●REST API連携など大量の”待ち”が発生
計算量が多い●色々ありますよね
データ転送量が多い●データ転送時間がボトルネックとなる
![Page 6: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/6.jpg)
2013.09..25 2013 ©
Alfrescoの場合に対象となるイベント
6
•ほとんどのAPIで使用されるRDBMS問い合わせ•コンテンツ変換の際のOpenOffice連携
•コンテンツの登録/読み出し•Luceneインデックスの更新/読み出し
(Solrを使用している場合)
•Solrインデックスへの問い合わせ•クライアントとのデータやり取り
外部連携 ファイルI/O データ転送量
•Lucene使用時の検索後の参照権限解決処理•Lucene/Solrインデックスの検索処理
計算量が多い
![Page 7: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/7.jpg)
2013.09..25 2013 ©
ざっくりの対処法
7
RDBMSへの問い合わせ ファイルI/O データ転送量
(コネクションプーリング)
問い合わせ結果をキャッシュ(Ehcache)
OSのディスクキャッシュキャッシュ(lucene用)
Webサーバによるリソースのキャッシュ
ネットワーク容量の強化
計算量が多い
CPU増やすクラスタリング
![Page 8: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/8.jpg)
2013.09..25 2013 ©
チューニングポイント① JVMメモリ
8
設定可能なメモリ領域ヒープ領域 パーマネント領域
セッションごとの使用領域
オブジェクトキャッシュ(EhCache)
Luceneインデックス
Alfrescoコード+ コンパイルされたjsの
コード
バッファ
寿命が短いNew領域内に収めたい
比較的寿命が長いOld領域に割り当てたい
JConsole等で実測しながらヒープ容量を決める
![Page 9: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/9.jpg)
2013.09..25 2013 ©
チューニングポイント② OSメモリ
9
OSメモリサイズの概算割当済 未割当
Alfresco on AppServer
その他のプロセス
カーネル
ディスクキャッシュとして利用可能
ディスクキャッシュに載せたいファイル
●Luceneインデックスファイル●(RDBMSを同一サーバで動作させている場合)データファイル
上記ファイルの全部がキャッシュに載るのが理想
![Page 10: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/10.jpg)
2013.09..25 2013 ©
参考:Ehcacheの設定
10
設定方法●alfresco-global.propertiesで初期値を変更可能●cache.*.maxItemsの設定項目
Enterpriseならキャッシュの使用状況をログ出力することができます...
cache.propertyValueCache.maxItems=10000cache.contentDataSharedCache.maxItems=130000cache.immutableEntitySharedCache.maxItems=50000cache.node.rootNodesSharedCache.maxItems=1000cache.node.allRootNodesSharedCache.maxItems=1000cache.node.nodesSharedCache.maxItems=250000cache.node.aspectsSharedCache.maxItems=130000cache.node.propertiesSharedCache.maxItems=130000cache.node.parentAssocsSharedCache.maxItems=130000cache.node.childByNameSharedCache.maxItems=130000....
グループ(authority)のようなあまり変更がないオブジェクトは全数がキャッシュに載るように必要に応じてサイズを上げる
![Page 11: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/11.jpg)
2013.09..25 2013 ©
参考:Luceneの設定
11
設定方法●alfresco-global.propertiesで初期値を変更可能●lucene.indexer.*の設定項目
lucene.indexer.cacheEnabled=truelucene.indexer.maxDocIdCacheSize=10000lucene.indexer.maxDocumentCacheSize=100lucene.indexer.maxIsCategoryCacheSize=-1lucene.indexer.maxLinkAspectCacheSize=10000lucene.indexer.maxParentCacheSize=10000lucene.indexer.maxPathCacheSize=10000lucene.indexer.maxTypeCacheSize=10000...
正直、それほど変更したことはない...
![Page 12: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/12.jpg)
2013.09..25 2013 ©
検索後の権限チェック
12
権限チェックの上限値を変更●権限チェックの上限数●権限チェックにかかる上限ミリ秒
設定方針
検索結果が多い場合には、検索処理よりも時間がかかる処理ページングする場合も初期ページ分の検索結果に対して権限チェックが発生
●ページング込みで検索などで表示する件数から件数の上限値や上限時間を設定しておき、全体の処理速度を低下させないようにする。
system.acl.maxPermissionChecks=1000system.acl.maxPermissionCheckTimeMillis=10000
![Page 13: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/13.jpg)
2013.09..25 2013 ©
プラスα
13
使わない機能の無効化●OpenOffice●コンテンツの変換に使用●強力だが当然メモリやCPUの消費もそれなりに激しい
ooo.enabled=falsealfresco-global.properties
![Page 14: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/14.jpg)
2013.09..25 2013 ©
まとめ
14
いまさらですが●パフォーマンスチューニングは、ユースケースに応じて検証しながら決めましょう。
●(単体の)Alfrescoのチューニングは●メモリをどう割り当てるかがチューニングの中心
●未割当メモリにも意味あり。ディスクキャッシュ重要!
![Page 15: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/15.jpg)
2013.09..25 2013 ©
リファレンス
15
今日紹介しなかったクラスタリングなどは下記を参照下さい
•Alfresco wiki•http://wiki.alfresco.com/wiki/Repository_Cache_Configuration•クラスタリング•http://www.slideshare.net/mryoshio/alfresco-cluster
![Page 16: 20130925 alfresco study18performancetuning](https://reader038.vdocuments.pub/reader038/viewer/2022100517/556a7591d8b42a7c758b4708/html5/thumbnails/16.jpg)