SlideShare a Scribd company logo
Submit Search
Upload
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Report
Share
Hironobu Isoda
Follow
•
0 likes
•
2,387 views
1
of
30
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
•
0 likes
•
2,387 views
Report
Share
Download Now
Download to read offline
Engineering
JJUG CCC 2021 Fall の発表資料です。
Read more
Hironobu Isoda
Follow
Recommended
マイクロにしすぎた結果がこれだよ! by
マイクロにしすぎた結果がこれだよ!
mosa siru
132.6K views
•
32 slides
Javaのログ出力: 道具と考え方 by
Javaのログ出力: 道具と考え方
Taku Miyakawa
74.3K views
•
67 slides
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 by
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
148.6K views
•
45 slides
Java ORマッパー選定のポイント #jsug by
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
90.1K views
•
66 slides
BuildKitによる高速でセキュアなイメージビルド by
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
42.6K views
•
27 slides
Dockerからcontainerdへの移行 by
Dockerからcontainerdへの移行
Kohei Tokunaga
16.6K views
•
36 slides
More Related Content
What's hot
SPAセキュリティ入門~PHP Conference Japan 2021 by
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
99.5K views
•
107 slides
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える by
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
65.3K views
•
119 slides
AWSのログ管理ベストプラクティス by
AWSのログ管理ベストプラクティス
Akihiro Kuwano
77.2K views
•
57 slides
こわくない Git by
こわくない Git
Kota Saito
881.4K views
•
186 slides
世界一わかりやすいClean Architecture by
世界一わかりやすいClean Architecture
Atsushi Nakamura
47.1K views
•
77 slides
「速」を落とさないコードレビュー by
「速」を落とさないコードレビュー
Takafumi ONAKA
55.5K views
•
62 slides
What's hot
(20)
SPAセキュリティ入門~PHP Conference Japan 2021 by Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
•
99.5K views
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える by pospome
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
•
65.3K views
AWSのログ管理ベストプラクティス by Akihiro Kuwano
AWSのログ管理ベストプラクティス
Akihiro Kuwano
•
77.2K views
こわくない Git by Kota Saito
こわくない Git
Kota Saito
•
881.4K views
世界一わかりやすいClean Architecture by Atsushi Nakamura
世界一わかりやすいClean Architecture
Atsushi Nakamura
•
47.1K views
「速」を落とさないコードレビュー by Takafumi ONAKA
「速」を落とさないコードレビュー
Takafumi ONAKA
•
55.5K views
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 by Koichiro Matsuoka
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
•
88.1K views
Redisの特徴と活用方法について by Yuji Otani
Redisの特徴と活用方法について
Yuji Otani
•
101.5K views
イミュータブルデータモデル(入門編) by Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
•
185.8K views
マイクロサービスバックエンドAPIのためのRESTとgRPC by disc99_
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
•
19.9K views
これからSpringを使う開発者が知っておくべきこと by 土岐 孝平
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
•
21.5K views
ソーシャルゲーム案件におけるDB分割のPHP実装 by infinite_loop
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
•
51.8K views
ストリーム処理を支えるキューイングシステムの選び方 by Yoshiyasu SAEKI
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
•
40.2K views
爆速クエリエンジン”Presto”を使いたくなる話 by Kentaro Yoshida
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
•
27.5K views
DockerとPodmanの比較 by Akihiro Suda
DockerとPodmanの比較
Akihiro Suda
•
47.9K views
Twitterのsnowflakeについて by moai kids
Twitterのsnowflakeについて
moai kids
•
24.8K views
エンジニアの個人ブランディングと技術組織 by Takafumi ONAKA
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
•
23.3K views
ドメイン駆動設計のための Spring の上手な使い方 by 増田 亨
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
•
138K views
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring) by Koichiro Matsuoka
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
•
15.4K views
Linux女子部 systemd徹底入門 by Etsuji Nakai
Linux女子部 systemd徹底入門
Etsuji Nakai
•
137.9K views
Similar to LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with... by
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
21.9K views
•
91 slides
Firefox5+HTML5×5 by
Firefox5+HTML5×5
dynamis
2.1K views
•
84 slides
企業におけるSpring@日本springユーザー会20090624 by
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
1.9K views
•
36 slides
Intalio Cloud Workshop by
Intalio Cloud Workshop
Daisuke Sugai
10K views
•
77 slides
Rails and twitter #twtr_hack by
Rails and twitter #twtr_hack
i7a
1.3K views
•
34 slides
Lightweight Keycloak by
Lightweight Keycloak
Hiroyuki Wada
1.2K views
•
30 slides
Similar to LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
(20)
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with... by Kousuke Ebihara
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
•
21.9K views
Firefox5+HTML5×5 by dynamis
Firefox5+HTML5×5
dynamis
•
2.1K views
企業におけるSpring@日本springユーザー会20090624 by Yusuke Suzuki
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
•
1.9K views
Intalio Cloud Workshop by Daisuke Sugai
Intalio Cloud Workshop
Daisuke Sugai
•
10K views
Rails and twitter #twtr_hack by i7a
Rails and twitter #twtr_hack
i7a
•
1.3K views
Lightweight Keycloak by Hiroyuki Wada
Lightweight Keycloak
Hiroyuki Wada
•
1.2K views
APIMeetup 20170329_ichimura by Tomohiro Ichimura
APIMeetup 20170329_ichimura
Tomohiro Ichimura
•
848 views
AlfrescoとSolr(後編) by Ashitaba YOSHIOKA
AlfrescoとSolr(後編)
Ashitaba YOSHIOKA
•
1.5K views
20120822_dstn技術交流会_dstnのご紹介と最新技術情報 by dstn
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
dstn
•
1.3K views
5分でわかる!ownCloudアドオンの作り方 by Yuki Takahashi
5分でわかる!ownCloudアドオンの作り方
Yuki Takahashi
•
3.8K views
Pycon2014 django performance by hirokiky
Pycon2014 django performance
hirokiky
•
12.4K views
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化 by シスコシステムズ合同会社
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコシステムズ合同会社
•
6.3K views
Oracle GoldenGate EM Plugin 13c セットアップガイド by オラクルエンジニア通信
Oracle GoldenGate EM Plugin 13c セットアップガイド
オラクルエンジニア通信
•
1K views
Lpicl300セミナー資料_20170218(鯨井貴博) by Takahiro Kujirai
Lpicl300セミナー資料_20170218(鯨井貴博)
Takahiro Kujirai
•
545 views
Snapdragon-SCORER by Satoshi Toriumi
Snapdragon-SCORER
Satoshi Toriumi
•
507 views
Develop Web Application with Node.js + Express by Akinari Tsugo
Develop Web Application with Node.js + Express
Akinari Tsugo
•
394 views
perfを使ったPostgreSQLの解析(後編) by NTT DATA OSS Professional Services
perfを使ったPostgreSQLの解析(後編)
NTT DATA OSS Professional Services
•
3.2K views
Struts2を始めよう! by Shinpei Ohtani
Struts2を始めよう!
Shinpei Ohtani
•
7.2K views
Oracle GoldenGate アーキテクチャと基本機能 by オラクルエンジニア通信
Oracle GoldenGate アーキテクチャと基本機能
オラクルエンジニア通信
•
8.2K views
QCon北京2015 sina jpool-微博平台自动化运维实践 by Weibo Corporation
QCon北京2015 sina jpool-微博平台自动化运维实践
Weibo Corporation
•
1K views
Recently uploaded
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦
122 views
•
36 slides
how query cost affects search behavior translated in JP by
how query cost affects search behavior translated in JP
Tobioka Ken
9 views
•
16 slides
システム概要.pdf by
システム概要.pdf
Taira Shimizu
40 views
•
1 slide
onewedge_companyguide1 by
onewedge_companyguide1
ONEWEDGE1
27 views
•
22 slides
lt.pptx by
lt.pptx
tomochamarika
80 views
•
13 slides
AIで始めるRustプログラミング #SolDevHub by
AIで始めるRustプログラミング #SolDevHub
K Kinzal
22 views
•
25 slides
Recently uploaded
(9)
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by 修治 松浦
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦
•
122 views
how query cost affects search behavior translated in JP by Tobioka Ken
how query cost affects search behavior translated in JP
Tobioka Ken
•
9 views
システム概要.pdf by Taira Shimizu
システム概要.pdf
Taira Shimizu
•
40 views
onewedge_companyguide1 by ONEWEDGE1
onewedge_companyguide1
ONEWEDGE1
•
27 views
lt.pptx by tomochamarika
lt.pptx
tomochamarika
•
80 views
AIで始めるRustプログラミング #SolDevHub by K Kinzal
AIで始めるRustプログラミング #SolDevHub
K Kinzal
•
22 views
図解で理解するvetKD by ryoo toku
図解で理解するvetKD
ryoo toku
•
86 views
SSH超入門 by Toru Miyahara
SSH超入門
Toru Miyahara
•
363 views
Najah Matsuo Self Introduction by NajahMatsuo
Najah Matsuo Self Introduction
NajahMatsuo
•
7 views
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
1.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential LogbackからLog4j 2への移行による アプリケーションのスループット改善
2.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 1 アジェンダ 1.自己紹介 2.LogbackからLog4j 2へ変更した際のQPS 3.Log4j 2のloggerの特徴 4.アプリケーションでのベンチマーク結果 5.Log4j 2の注意事項 6.まとめ
3.
ULS 2 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential 自己紹介
4.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 3 磯田 浩靖 - 所属:ウルシステムズ株式会社 - 連絡先:hironobu.isoda@ulsystems.co.jp - twitter:hiroisojp - Javaエンジニア、認定スクラムマスタ 自己紹介
5.
ULS 4 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential LogbackからLog4j 2へ変更した際のQPS
6.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 5 LogbackからLog4j 2へ変更した際のQPS Logback Log4j 2 同じアプリケーションコードでロギングライブラリを変更した際のQPSが 20%程度向上した QPS = Queries Per Second、1秒間で処理できる件数
7.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 6 Log4j 2はLogbackとアーキテクチャが異なる - Log4j 2 はロックフリーのデータ構造 - 内部でLMAX Disruptorというライブラリを用い、Ring Bufferを使ったデータ構造 - Logback はロック競合あり - ArrayBlockingQueue この違いによりQPSに差が出たのではないかと思われる なぜQPSが向上したか https://www.slideshare.net/Stephan.Schmidt/lmax-architecture-jax-conference
8.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 7 マルチスレッドであるほどロックフリーの恩恵が大きい (参考)公式サイトのベンチマーク https://logging.apache.org/log4j/2.x/performance.html Logback Log4j 2
9.
ULS 8 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential Log4j 2のloggerの特徴
10.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 9 Log4j2のloggerはsync/asyncがあり以下の組み合わせで設定できる all loggers asyncが最もパフォーマンスがよい 利用する場合はJVMパラメータを指定する - log4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector all loggers async 種類 設定方法 sync log4j2.xmlにLoggerとして指定 <Logger name="foo.Bar" level="info"></Logger> async log4j2.xmlにAsyncLoggerとして指定 <AsyncLogger name="foo.Baz" level="trace"></AsyncLogger> mixed sync/async log4j2.xmlにLogger, AsyncLoggerをそれぞれ指定 all loggers async log4j2.xmlにLoggerとして指定+以下のJVMオプションを指定 - Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.As yncLoggerContextSelector all loggers asyncが 最もパフォーマンスがよい
11.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 10 Log4j 2(2.6以降)ではガベージフリーなロギングが可能 ログ出力におけるGCが発生しにくい ガベージフリーロギング メモリ割り当て が発生 メモリ割り当て がほとんどない 2.5 2.6 https://logging.apache.org/log4j/2.x/manual/garbagefree.html
12.
ULS 11 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential アプリケーションでのベンチマーク結果
13.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 12 Log4j 2利用によるベンチマーク確認 ガベージフリーロギング all loggers async QPSが向上 するか GC傾向が 変化するか Log4j 2の特徴がアプリケーションにも寄与するかをベンチマークにて確認
14.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 13 オンライン広告入札を行うアプリケーション - 秒間40万件のリクエストを処理(1台あたりは5k〜7k程度) - 3〜5ms以内のレスポンス リクエストごとに分析基盤で用いるログを出力している アプリケーション概要
15.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 14 - 処理数 - 秒間5k〜7k - 1行あたりのサイズ - 1.6kb - ファイルサイズ - 1GB(1分間) - アプリケーションスレッド数 - 84(CPUコア数 * 3) アプリケーション概要(ログ周辺)
16.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 15 <appender name="ASYNC_FOO_LOG" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="FOO_LOG" /> <queueSize>20000</queueSize> <discardingThreshold>0</discardingThreshold> </appender> <appender name="FOO_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>foo.tsv</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>foo.%d{yyyy-MM-dd.HH-mm}.tsv </fileNamePattern> </rollingPolicy> <encoder> <pattern> <![CDATA[%d{yyyy-MM-dd HH:mm:ss.SSS z}¥t%msg%n]]> </pattern> </encoder> </appender> Log4j 2、Logbackの設定概要 いずれもAsync Loggerにてログ出力処理を行う Logback Log4j 2 <RollingFile name="FOO_LOG" fileName="foo" filePattern="foo.%d{yyyy- MM-dd.HH-mm}.tsv"> <PatternLayout> <Pattern> <![CDATA[%d{yyyy-MM-dd HH:mm:ss.SSS z}¥t%msg%n]]> </Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> </Policies> </RollingFile> logback.xml log4j2.xml (all loggers asyncを使う設定) - Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLogger ContextSelector -DAsyncLogger.WaitStrategy=busyspin -DAsyncLogger.SynchronizeEnqueueWhenQueueFull=false JVMオプション
17.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 16 Log4j 2、Logbackを利用した時のQPS Logback Log4j 2 QPS = Queries Per Second、1秒間で処理できる件数 Log4j 2 = 約6,000QPS Logback = 約5,000QPS ロギングライブラリの変更により20%程度の向上がみられた
18.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 17 負荷をかけている内の1時間、JFRを取得しFlameGraphで確認 Log4j 2ではログ出力処理に関する部分が高速化された JFR(FlameGraph) Logback Log4j 2 幅が短いほうが、ある時間内の 処理時間の割合が低い=速い処理 Log4j 2より幅が広い = 処理に時間がかかっている
19.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 18 ログ出力処理のみにフォーカスすると LogbackではArrayBlockingQueue以降に時間を消費している JFR(FlameGraph) Logback Log4j 2
20.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 19 10-20ms帯ではややLog4j 2の方がGCが短い傾向がみられた GC傾向 Logback Log4j 2 Logbackより短いGC の割合が増えている
21.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 20 Log4j 2利用によるベンチマーク結果 ガベージフリーロギング all loggers async QPSが向上 するか GC傾向が 変化するか QPSは向上し、GC傾向も10-20ms帯でやや短くなる割合が増えた Logback時よりもQPSは向上した 10-20ms帯で改善が少しみられた
22.
ULS 21 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential Log4j 2の注意事項
23.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 22 WaitStrategy、SynchronizeEnqueueWhenQueueFullの設定によっても FlameGraphの結果はかなり変わるのでアプリケーションにあった組み合わ せを探索する WaitStrategyの種類 - timeout(デフォルト) - block - sleep - yield - busyspin SynchronizeEnqueueWhenQueueFull - true/false all loggers asyncに関する注意事項 https://logging.apache.org/log4j/2.x/manual/async.html
24.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 23 WaitStrategy、SynchronizeEnqueueWhenQueueFullの組み合わせによる FlameGraphの例 all loggers asyncに関する注意事項 JVMパラメータ FlameGraph(赤枠内はlog4j 2の処理部分) AsyncLogger.WaitStrategy=busyspin AsyncLogger.SynchronizeEnqueueWhenQueueFull=false AsyncLogger.WaitStrategy=timeout AsyncLogger.WaitStrategy=busyspin AsyncLogger.SynchronizeEnqueueWhenQueueFull=true
25.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 24 Webアプリケーション(javax.servlet.Servletがクラスパスに存在する)の 場合、デフォルトは低ガベージモードとなる (log4j2.enable.threadlocalsがfalseに設定される) ガベージフリーに関する注意事項 https://logging.apache.org/log4j/2.x/manual/garbagefree.html JVMパラメータ モード log4j2.enable.threadlocals=true log4j2.enable.direct.encoders=true ガベージフリー log4j2.enable.threadlocals=false log4j2.enable.direct.encoders=true 低ガベージ log4j2.enable.threadlocals=false log4j2.enable.direct.encoders=false クラシック
26.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 25 ログ出力時に%d(日付)などPatternを指定し値を変換することができる このうち位置情報を含むPatternを用いるとパフォーマンスが大きく落ちる Patternに関する注意事項 Pattern 出力例 %C or %class foo.Bar %F or %file Bar.java %l or %location foo.Bar.exec(Bar.java:123) %L or %line 123 %M or %method exec 位置情報を含むPattern Asyncのときにも パフォーマンス影響 が大きい https://logging.apache.org/log4j/2.x/performance.html#asyncLoggingWithLocation
27.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 26 ほぼそのまま移行できたため、大きな問題はなかった アプリケーションで利用していた範囲ではif conditionのみ影響があった (設定ファイル自体を分けて対応) <if condition='property("type").contains("staging")'> <then> (ステージング環境用の設定) </then> <else> (本番環境用の設定) </else> </if> Log4j 2では左記のLogbackの ように条件分岐できない (参考)ログ設定ファイルの移行 logback.xml
28.
ULS 27 Copyright ©
2011-2021 UL Systems, Inc. All rights reserved. Proprietary & Confidential まとめ
29.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 28 - アプリケーションのQPSが向上 & GCも多少改善した - Logbackからロギングライブラリの置き換えを試して見る価値あり - 何度か計測して同じ傾向であったことは確認済 - Log4j 2 Async, ガベージフリーの恩恵は設定や環境制約がある - WaitStrategyのチューニングをする - ガベージフリーはWebアプリケーションではデフォルトは低ガベージモードとなる ので、ガベージフリーモードが利用できるかをチェック - ログ出力時のPatternに位置情報を含めないようにする まとめ
30.
ULS Copyright © 2011-2021
UL Systems, Inc. All rights reserved. Proprietary & Confidential 29