From 0ef6309ea121b6aeb798f210ab07da2fa32d2c56 Mon Sep 17 00:00:00 2001 From: Evawudonger Date: Sun, 28 Sep 2025 14:38:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9performance=E7=9A=84=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=AD=98=E5=82=A8=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _redirect.yaml | 33 +- docs/en/server/_toc.yaml | 14 +- .../{system_optimization => }/atune/_toc.yaml | 0 .../atune/appendix.md | 0 .../atune/figures/en-us_image_0213178479.png | Bin .../atune/figures/en-us_image_0213178480.png | Bin .../atune/figures/en-us_image_0214540398.png | Bin .../atune/figures/en-us_image_0227497000.png | Bin .../atune/figures/en-us_image_0227497343.png | Bin .../atune/figures/en-us_image_0231122163.png | Bin .../atune/figures/en-us_image_0245342444.png | Bin .../atune/figures/picture1.png | Bin .../atune/figures/picture4.png | Bin .../atune/getting_to_know_a_tune.md | 0 .../atune/installation_and_deployment.md | 0 .../atune/usage_instructions.md | 0 .../{cpu_optimization => }/kae/_toc.yaml | 0 .../kae/figures/RA-arch-1.png | Bin .../kae/figures/RA-arch-2.png | Bin .../kae/figures/TPCM.png | Bin .../kae/figures/creat_datadisk.png | Bin .../kae/figures/creat_datadisk1.png | Bin ...d1376b2a-d036-41c4-b852-e8368f363b5e-1.png | Bin .../d1376b2a-d036-41c4-b852-e8368f363b5e.png | Bin .../kae/figures/en-us_image_0229622729.png | Bin .../kae/figures/en-us_image_0229622789.png | Bin .../kae/figures/en-us_image_0230050789.png | Bin .../kae/figures/en-us_image_0231143189.png | Bin .../kae/figures/en-us_image_0231143191.png | Bin .../kae/figures/en-us_image_0231143193.png | Bin .../kae/figures/en-us_image_0231143195.png | Bin .../kae/figures/en-us_image_0231143196.png | Bin .../kae/figures/en-us_image_0231143197.png | Bin .../kae/figures/en-us_image_0231143198.png | Bin .../kae/figures/en-us_image_0231563132.png | Bin .../kae/figures/en-us_image_0231563134.png | Bin .../kae/figures/en-us_image_0231563135.png | Bin .../kae/figures/en-us_image_0231563136.png | Bin .../figures/etmem-system-architecture-en.png | Bin .../kae/figures/example-command-output.png | Bin .../kae/figures/ima_digest_list_update.png | Bin .../kae/figures/ima_performance.png | Bin .../kae/figures/ima_verification.png | Bin .../kae/figures/login.png | Bin .../figures/mariadb-logical-architecture.png | Bin .../figures/nginx-deployment-succeeded.png | Bin .../kae/figures/nginx-startup-failure.png | Bin .../kae/figures/postgres.png | Bin .../kae/figures/postgresql-architecture.png | Bin ...-nginx-service-is-successfully-started.png | Bin .../kae/figures/trusted_chain.png | Bin .../kae/using_the_kae.md | 0 .../powerapi/_toc.yaml | 0 .../powerapi/development_using_powerapi.md | 0 .../powerapi/getting_to_know_powerapi.md | 0 .../powerapi/installation_usage.md | 2 +- .../powerapi/powerapi.md | 0 .../{overall => }/system_resource/_toc.yaml | 0 ...cb9df64f4659787c810167c89feb4_1884x257.png | Bin .../images/en-us_image_0000001321685172.png | Bin .../images/en-us_image_0000001322112990.png | Bin .../images/en-us_image_0000001322219840.png | Bin .../images/en-us_image_0000001322372918.png | Bin .../images/en-us_image_0000001322379488.png | Bin .../images/en-us_image_0000001335457246.png | Bin .../images/en-us_image_0000001337000118.png | Bin .../images/en-us_image_0000001337039920.png | Bin .../images/en-us_image_0000001337053248.png | Bin .../images/en-us_image_0000001337172594.png | Bin .../images/en-us_image_0000001337260780.png | Bin .../images/en-us_image_0000001337420372.png | Bin .../images/en-us_image_0000001337533690.png | Bin .../images/en-us_image_0000001337536842.png | Bin .../images/en-us_image_0000001337580216.png | Bin .../images/en-us_image_0000001337696078.png | Bin .../images/en-us_image_0000001337740252.png | Bin .../images/en-us_image_0000001337740540.png | Bin .../images/en-us_image_0000001372249333.png | Bin .../images/en-us_image_0000001372748125.png | Bin .../images/en-us_image_0000001372821865.png | Bin .../images/en-us_image_0000001372824637.png | Bin .../images/en-us_image_0000001373373585.png | Bin .../images/en-us_image_0000001373379529.png | Bin .../images/en-us_image_0000001384808269.png | Bin .../images/en-us_image_0000001385585749.png | Bin .../images/en-us_image_0000001385611905.png | Bin .../images/en-us_image_0000001386699925.png | Bin .../images/en-us_image_0000001387293085.png | Bin .../images/en-us_image_0000001387413509.png | Bin .../images/en-us_image_0000001387413793.png | Bin .../images/en-us_image_0000001387415629.png | Bin .../images/en-us_image_0000001387692269.jpg | Bin .../images/en-us_image_0000001387692893.png | Bin .../images/en-us_image_0000001387755969.png | Bin .../images/en-us_image_0000001387780357.png | Bin .../images/en-us_image_0000001387855149.png | Bin .../images/en-us_image_0000001387857005.png | Bin .../images/en-us_image_0000001388020197.png | Bin .../images/en-us_image_0000001388972645.png | Bin .../images/en-us_image_0000001389098425.png | Bin .../images/en-us_other_0000001337581224.jpeg | Bin .../system_resources_and_performance.md | 0 .../tuning_framework/oeaware/_toc.yaml | 6 - .../oeaware/figures/dep-failed.png | Bin 32639 -> 0 bytes .../tuning_framework/oeaware/figures/dep.png | Bin 57238 -> 0 bytes .../oeaware/figures/dependency.png | Bin 27727 -> 0 bytes .../oeaware/oeaware_user_guide.md | 521 ------------ docs/zh/server/_toc.yaml | 16 +- .../{system_optimization => }/atune/_toc.yaml | 0 .../atune/appendix.md | 0 .../atune/figures/zh-cn_image_0213178479.png | Bin .../atune/figures/zh-cn_image_0213178480.png | Bin .../atune/figures/zh-cn_image_0214540398.png | Bin .../atune/figures/zh-cn_image_0227497000.png | Bin .../atune/figures/zh-cn_image_0227497343.png | Bin .../atune/figures/zh-cn_image_0231122163.png | Bin .../atune/figures/zh-cn_image_0245342444.png | Bin .../atune/getting_to_know_a_tune.md | 0 .../atune/installation_and_deployment.md | 2 +- .../atune/usage_instructions.md | 0 .../{system_optimization => }/eagle/_toc.yaml | 0 .../eagle/eagle_installation_and_usage.md | 0 .../{storage_optimization => }/fuse/_toc.yaml | 0 .../fuse/fuse_acceleration_feature_guide.md | 0 .../{cpu_optimization => }/kae/_toc.yaml | 0 .../kae/figures/zh-cn_image_0231143189.png | Bin .../kae/figures/zh-cn_image_0231143191.png | Bin .../kae/figures/zh-cn_image_0231143193.png | Bin .../kae/figures/zh-cn_image_0231143195.png | Bin .../kae/figures/zh-cn_image_0231143196.png | Bin .../kae/figures/zh-cn_image_0231143197.png | Bin .../kae/figures/zh-cn_image_0231143198.png | Bin .../kae/using_the_kae.md | 0 .../powerapi/_toc.yaml | 0 .../powerapi/development_using_powerapi.md | 0 .../powerapi/getting_to_know_powerapi.md | 0 .../powerapi/installation_usage.md | 0 .../powerapi/powerapi.md | 0 .../{overall => }/system_resource/_toc.yaml | 0 ...cb9df64f4659787c810167c89feb4_1884x257.png | Bin .../images/zh-cn_image_0000001321685172.png | Bin .../images/zh-cn_image_0000001322112990.png | Bin .../images/zh-cn_image_0000001322219840.png | Bin .../images/zh-cn_image_0000001322372918.png | Bin .../images/zh-cn_image_0000001322379488.png | Bin .../images/zh-cn_image_0000001335457246.png | Bin .../images/zh-cn_image_0000001335816300.png | Bin .../images/zh-cn_image_0000001336448570.png | Bin .../images/zh-cn_image_0000001336729664.png | Bin .../images/zh-cn_image_0000001337000118.png | Bin .../images/zh-cn_image_0000001337039920.png | Bin .../images/zh-cn_image_0000001337051916.jpg | Bin .../images/zh-cn_image_0000001337053248.png | Bin .../images/zh-cn_image_0000001337172594.png | Bin .../images/zh-cn_image_0000001337212144.jpg | Bin .../images/zh-cn_image_0000001337260780.png | Bin .../images/zh-cn_image_0000001337268560.png | Bin .../images/zh-cn_image_0000001337268820.png | Bin .../images/zh-cn_image_0000001337419960.png | Bin .../images/zh-cn_image_0000001337420372.png | Bin .../images/zh-cn_image_0000001337422904.png | Bin .../images/zh-cn_image_0000001337424024.png | Bin .../images/zh-cn_image_0000001337424304.png | Bin .../images/zh-cn_image_0000001337427216.png | Bin .../images/zh-cn_image_0000001337427392.png | Bin .../images/zh-cn_image_0000001337533690.png | Bin .../images/zh-cn_image_0000001337536842.png | Bin .../images/zh-cn_image_0000001337579708.png | Bin .../images/zh-cn_image_0000001337580216.png | Bin .../images/zh-cn_image_0000001337584296.png | Bin .../images/zh-cn_image_0000001337696078.png | Bin .../images/zh-cn_image_0000001337740252.png | Bin .../images/zh-cn_image_0000001337740540.png | Bin .../images/zh-cn_image_0000001337747132.png | Bin .../images/zh-cn_image_0000001337748300.png | Bin .../images/zh-cn_image_0000001337748528.png | Bin .../images/zh-cn_image_0000001372249333.png | Bin .../images/zh-cn_image_0000001372748125.png | Bin .../images/zh-cn_image_0000001372821865.png | Bin .../images/zh-cn_image_0000001372824637.png | Bin .../images/zh-cn_image_0000001373373585.png | Bin .../images/zh-cn_image_0000001373379529.png | Bin .../images/zh-cn_image_0000001384808269.png | Bin .../images/zh-cn_image_0000001385585749.png | Bin .../images/zh-cn_image_0000001385611905.png | Bin .../images/zh-cn_image_0000001385905845.png | Bin .../images/zh-cn_image_0000001386149037.png | Bin .../images/zh-cn_image_0000001386699925.png | Bin .../images/zh-cn_image_0000001387293085.png | Bin .../images/zh-cn_image_0000001387413509.png | Bin .../images/zh-cn_image_0000001387413793.png | Bin .../images/zh-cn_image_0000001387415629.png | Bin .../images/zh-cn_image_0000001387691985.png | Bin .../images/zh-cn_image_0000001387692269.jpg | Bin .../images/zh-cn_image_0000001387692893.png | Bin .../images/zh-cn_image_0000001387755969.png | Bin .../images/zh-cn_image_0000001387780357.png | Bin .../images/zh-cn_image_0000001387784693.png | Bin .../images/zh-cn_image_0000001387787605.png | Bin .../images/zh-cn_image_0000001387855149.png | Bin .../images/zh-cn_image_0000001387857005.png | Bin .../images/zh-cn_image_0000001387902849.png | Bin .../images/zh-cn_image_0000001387907229.png | Bin .../images/zh-cn_image_0000001387908045.png | Bin .../images/zh-cn_image_0000001387908453.png | Bin .../images/zh-cn_image_0000001387961737.png | Bin .../images/zh-cn_image_0000001388020197.png | Bin .../images/zh-cn_image_0000001388024321.png | Bin .../images/zh-cn_image_0000001388024397.png | Bin .../images/zh-cn_image_0000001388028161.png | Bin .../images/zh-cn_image_0000001388028537.png | Bin .../images/zh-cn_image_0000001388184025.png | Bin .../images/zh-cn_image_0000001388187249.png | Bin .../images/zh-cn_image_0000001388187325.png | Bin .../images/zh-cn_image_0000001388188365.png | Bin .../images/zh-cn_image_0000001388241577.png | Bin .../images/zh-cn_image_0000001388972645.png | Bin .../images/zh-cn_image_0000001389098425.png | Bin .../images/zh-cn_other_0000001337581224.jpeg | Bin .../system_resources_and_performance.md | 0 .../tuning_framework/oeaware/_toc.yaml | 6 - .../oeaware/figures/dep-failed.png | Bin 44465 -> 0 bytes .../tuning_framework/oeaware/figures/dep.png | Bin 45348 -> 0 bytes ...5\350\265\226\345\205\263\347\263\273.png" | Bin 15321 -> 0 bytes .../oeaware/oeaware_user_guide.md | 748 ------------------ 225 files changed, 41 insertions(+), 1307 deletions(-) rename docs/en/server/performance/{system_optimization => }/atune/_toc.yaml (100%) rename docs/en/server/performance/{system_optimization => }/atune/appendix.md (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/en-us_image_0213178479.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/en-us_image_0213178480.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/en-us_image_0214540398.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/en-us_image_0227497000.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/en-us_image_0227497343.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/en-us_image_0231122163.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/en-us_image_0245342444.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/picture1.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/figures/picture4.png (100%) rename docs/en/server/performance/{system_optimization => }/atune/getting_to_know_a_tune.md (100%) rename docs/en/server/performance/{system_optimization => }/atune/installation_and_deployment.md (100%) rename docs/en/server/performance/{system_optimization => }/atune/usage_instructions.md (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/_toc.yaml (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/RA-arch-1.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/RA-arch-2.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/TPCM.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/creat_datadisk.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/creat_datadisk1.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0229622729.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0229622789.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0230050789.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231143189.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231143191.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231143193.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231143195.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231143196.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231143197.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231143198.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231563132.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231563134.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231563135.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/en-us_image_0231563136.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/etmem-system-architecture-en.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/example-command-output.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/ima_digest_list_update.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/ima_performance.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/ima_verification.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/login.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/mariadb-logical-architecture.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/nginx-deployment-succeeded.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/nginx-startup-failure.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/postgres.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/postgresql-architecture.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/the-nginx-service-is-successfully-started.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/figures/trusted_chain.png (100%) rename docs/en/server/performance/{cpu_optimization => }/kae/using_the_kae.md (100%) rename docs/en/server/performance/{system_optimization => }/powerapi/_toc.yaml (100%) rename docs/en/server/performance/{system_optimization => }/powerapi/development_using_powerapi.md (100%) rename docs/en/server/performance/{system_optimization => }/powerapi/getting_to_know_powerapi.md (100%) rename docs/en/server/performance/{system_optimization => }/powerapi/installation_usage.md (76%) rename docs/en/server/performance/{system_optimization => }/powerapi/powerapi.md (100%) rename docs/en/server/performance/{overall => }/system_resource/_toc.yaml (100%) rename docs/en/server/performance/{overall => }/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001321685172.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001322112990.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001322219840.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001322372918.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001322379488.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001335457246.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337000118.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337039920.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337053248.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337172594.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337260780.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337420372.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337533690.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337536842.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337580216.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337696078.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337740252.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001337740540.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001372249333.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001372748125.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001372821865.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001372824637.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001373373585.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001373379529.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001384808269.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001385585749.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001385611905.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001386699925.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387293085.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387413509.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387413793.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387415629.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387692269.jpg (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387692893.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387755969.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387780357.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387855149.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001387857005.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001388020197.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001388972645.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_image_0000001389098425.png (100%) rename docs/en/server/performance/{overall => }/system_resource/images/en-us_other_0000001337581224.jpeg (100%) rename docs/en/server/performance/{overall => }/system_resource/system_resources_and_performance.md (100%) delete mode 100644 docs/en/server/performance/tuning_framework/oeaware/_toc.yaml delete mode 100644 docs/en/server/performance/tuning_framework/oeaware/figures/dep-failed.png delete mode 100644 docs/en/server/performance/tuning_framework/oeaware/figures/dep.png delete mode 100644 docs/en/server/performance/tuning_framework/oeaware/figures/dependency.png delete mode 100644 docs/en/server/performance/tuning_framework/oeaware/oeaware_user_guide.md rename docs/zh/server/performance/{system_optimization => }/atune/_toc.yaml (100%) rename docs/zh/server/performance/{system_optimization => }/atune/appendix.md (100%) rename docs/zh/server/performance/{system_optimization => }/atune/figures/zh-cn_image_0213178479.png (100%) rename docs/zh/server/performance/{system_optimization => }/atune/figures/zh-cn_image_0213178480.png (100%) rename docs/zh/server/performance/{system_optimization => }/atune/figures/zh-cn_image_0214540398.png (100%) rename docs/zh/server/performance/{system_optimization => }/atune/figures/zh-cn_image_0227497000.png (100%) rename docs/zh/server/performance/{system_optimization => }/atune/figures/zh-cn_image_0227497343.png (100%) rename docs/zh/server/performance/{system_optimization => }/atune/figures/zh-cn_image_0231122163.png (100%) rename docs/zh/server/performance/{system_optimization => }/atune/figures/zh-cn_image_0245342444.png (100%) rename docs/zh/server/performance/{system_optimization => }/atune/getting_to_know_a_tune.md (100%) rename docs/zh/server/performance/{system_optimization => }/atune/installation_and_deployment.md (98%) rename docs/zh/server/performance/{system_optimization => }/atune/usage_instructions.md (100%) rename docs/zh/server/performance/{system_optimization => }/eagle/_toc.yaml (100%) rename docs/zh/server/performance/{system_optimization => }/eagle/eagle_installation_and_usage.md (100%) rename docs/zh/server/performance/{storage_optimization => }/fuse/_toc.yaml (100%) rename docs/zh/server/performance/{storage_optimization => }/fuse/fuse_acceleration_feature_guide.md (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/_toc.yaml (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/figures/zh-cn_image_0231143189.png (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/figures/zh-cn_image_0231143191.png (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/figures/zh-cn_image_0231143193.png (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/figures/zh-cn_image_0231143195.png (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/figures/zh-cn_image_0231143196.png (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/figures/zh-cn_image_0231143197.png (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/figures/zh-cn_image_0231143198.png (100%) rename docs/zh/server/performance/{cpu_optimization => }/kae/using_the_kae.md (100%) rename docs/zh/server/performance/{system_optimization => }/powerapi/_toc.yaml (100%) rename docs/zh/server/performance/{system_optimization => }/powerapi/development_using_powerapi.md (100%) rename docs/zh/server/performance/{system_optimization => }/powerapi/getting_to_know_powerapi.md (100%) rename docs/zh/server/performance/{system_optimization => }/powerapi/installation_usage.md (100%) rename docs/zh/server/performance/{system_optimization => }/powerapi/powerapi.md (100%) rename docs/zh/server/performance/{overall => }/system_resource/_toc.yaml (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001321685172.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001322112990.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001322219840.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001322372918.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001322379488.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001335457246.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001335816300.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001336448570.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001336729664.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337000118.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337039920.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337051916.jpg (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337053248.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337172594.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337212144.jpg (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337260780.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337268560.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337268820.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337419960.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337420372.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337422904.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337424024.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337424304.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337427216.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337427392.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337533690.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337536842.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337579708.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337580216.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337584296.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337696078.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337740252.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337740540.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337747132.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337748300.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001337748528.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001372249333.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001372748125.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001372821865.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001372824637.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001373373585.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001373379529.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001384808269.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001385585749.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001385611905.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001385905845.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001386149037.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001386699925.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387293085.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387413509.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387413793.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387415629.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387691985.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387692269.jpg (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387692893.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387755969.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387780357.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387784693.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387787605.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387855149.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387857005.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387902849.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387907229.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387908045.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387908453.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001387961737.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388020197.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388024321.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388024397.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388028161.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388028537.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388184025.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388187249.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388187325.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388188365.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388241577.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001388972645.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_image_0000001389098425.png (100%) rename docs/zh/server/performance/{overall => }/system_resource/images/zh-cn_other_0000001337581224.jpeg (100%) rename docs/zh/server/performance/{overall => }/system_resource/system_resources_and_performance.md (100%) delete mode 100644 docs/zh/server/performance/tuning_framework/oeaware/_toc.yaml delete mode 100644 docs/zh/server/performance/tuning_framework/oeaware/figures/dep-failed.png delete mode 100644 docs/zh/server/performance/tuning_framework/oeaware/figures/dep.png delete mode 100644 "docs/zh/server/performance/tuning_framework/oeaware/figures/\344\276\235\350\265\226\345\205\263\347\263\273.png" delete mode 100644 docs/zh/server/performance/tuning_framework/oeaware/oeaware_user_guide.md diff --git a/_redirect.yaml b/_redirect.yaml index d324f6d..e87b12f 100644 --- a/_redirect.yaml +++ b/_redirect.yaml @@ -1,3 +1,12 @@ +/docs/en/docs/A-Tune/getting-to-know-a-tune.md: /docs/en/server/performance/atune/getting_to_know_a_tune.md +/docs/en/docs/A-Tune/installation-and-deployment.md: /docs/en/server/performance/atune/installation_and_deployment.md +/docs/en/docs/A-Tune/application-scenarios.md: /docs/en/server/performance/atune/usage_instructions.md +/docs/en/docs/A-Tune/appendixes.md: /docs/en/server/performance/atune/appendix.md +/docs/en/docs/powerapi/powerapi.md: /docs/en/server/performance/powerapi/powerapi.md +/docs/en/docs/powerapi/getting_to_know_powerapi.md: /docs/en/server/performance/powerapi/getting_to_know_powerapi.md +/docs/en/docs/powerapi/installation_usage.md: /docs/en/server/performance/powerapi/installation_usage.md +/docs/en/docs/powerapi/development_using_powerapi.md: /docs/en/server/performance/powerapi/development_using_powerapi.md +/docs/en/docs/Administration/using-the-kae.md: /docs/en/server/performance/kae/using_the_kae.md /docs/zh/docs/Releasenotes/法律声明.md: /docs/zh/server/releasenotes/terms_of_use.md /docs/zh/docs/Releasenotes/简介.md: /docs/zh/server/releasenotes/introduction.md /docs/zh/docs/Releasenotes/用户须知.md: /docs/zh/server/releasenotes/user_notice.md @@ -39,8 +48,8 @@ /docs/zh/docs/Gazelle/Gazelle单网卡功能使用说明.md: /docs/zh/server/network/gazelle/gazelle_single_nic_user_guide.md /docs/zh/docs/Gazelle/Gazelle加速openGauss.md: /docs/zh/server/network/gazelle/gazelle_for_opengauss_acceleration.md /docs/zh/docs/Administration/使用LVM管理硬盘.md: /docs/zh/server/memory_storage/lvm/managing_drives_through_lvm.md -/docs/zh/docs/Administration/使用KAE加速引擎.md: /docs/zh/server/performance/cpu_optimization/kae/using_the_kae.md -/docs/zh/docs/Administration/FUSE加速特性指南.md: /docs/zh/server/performance/cpu_optimization/fuse/fuse_acceleration_feature_guide.md +/docs/zh/docs/Administration/使用KAE加速引擎.md: /docs/zh/server/performance/kae/using_the_kae.md +/docs/zh/docs/Administration/FUSE加速特性指南.md: /docs/zh/server/performance/fuse/fuse_acceleration_feature_guide.md /docs/zh/docs/Administration/可信计算.md: /docs/zh/server/security/trusted_computing/trusted_computing.md /docs/zh/docs/ops_guide/信息收集.md: /docs/zh/server/maintenance/common_skills/information_collection.md /docs/zh/docs/ops_guide/常用技能.md: /docs/zh/server/maintenance/common_skills/common_configurations.md @@ -101,16 +110,16 @@ /docs/zh/docs/safeguard/safeguard用户指南.md: /docs/zh/server/security/safeguard/safeguard_user_guide.md /docs/zh/docs/safeguard/safeguard部署指南.md: /docs/zh/server/security/safeguard/install_safeguard.md /docs/zh/docs/SBOM/SBOM说明.md: /docs/zh/server/security/sbom/sbom.md -/docs/zh/docs/A-Tune/认识A-Tune.md: /docs/zh/server/performance/system_optimization/atune/getting_to_know_a_tune.md -/docs/zh/docs/A-Tune/安装与部署.md: /docs/zh/server/performance/system_optimization/atune/installation_and_deployment.md -/docs/zh/docs/A-Tune/使用方法.md: /docs/zh/server/performance/system_optimization/atune/usage_instructions.md -/docs/zh/docs/A-Tune/附录.md: /docs/zh/server/performance/system_optimization/atune/appendix.md -/docs/zh/docs/powerapi/powerapi.md: /docs/zh/server/performance/system_optimization/powerapi/powerapi.md -/docs/zh/docs/powerapi/认识powerapi.md: /docs/zh/server/performance/system_optimization/powerapi/getting_to_know_powerapi.md -/docs/zh/docs/powerapi/安装与使用.md: /docs/zh/server/performance/system_optimization/powerapi/getting_to_know_powerapi.md -/docs/zh/docs/powerapi/使用powerapi进行开发.md: /docs/zh/server/performance/system_optimization/powerapi/development_using_powerapi.md -/docs/zh/docs/powerapi/eagle安装与使用.md: /docs/zh/server/performance/system_optimization/eagle/eagle_installation_and_usage.md -/docs/zh/docs/oeAware/oeAware用户指南.md: /docs/zh/server/performance/tuning_framework/oeaware/oeaware_user_guide.md +/docs/zh/docs/A-Tune/认识A-Tune.md: /docs/zh/server/performance/atune/getting_to_know_a_tune.md +/docs/zh/docs/A-Tune/安装与部署.md: /docs/zh/server/performance/atune/installation_and_deployment.md +/docs/zh/docs/A-Tune/使用方法.md: /docs/zh/server/performance/atune/usage_instructions.md +/docs/zh/docs/A-Tune/附录.md: /docs/zh/server/performance/atune/appendix.md +/docs/zh/docs/powerapi/powerapi.md: /docs/zh/server/performance/powerapi/powerapi.md +/docs/zh/docs/powerapi/认识powerapi.md: /docs/zh/server/performance/powerapi/getting_to_know_powerapi.md +/docs/zh/docs/powerapi/安装与使用.md: /docs/zh/server/performance/powerapi/installation_usage.md +/docs/zh/docs/powerapi/使用powerapi进行开发.md: /docs/zh/server/performance/powerapi/development_using_powerapi.md +/docs/zh/docs/powerapi/eagle安装与使用.md: /docs/zh/server/performance/eagle/eagle_installation_and_usage.md +/docs/zh/docs/oeAware/oeAware用户指南.md: /docs/zh/server/performance/oeaware/oeaware_user_guide.md /docs/zh/docs/desktop/安装UKUI.md: /docs/zh/tools/desktop/ukui/ukui_installation.md /docs/zh/docs/desktop/UKUIuserguide.md: /docs/zh/tools/desktop/ukui/ukui_user_guide.md /docs/zh/docs/desktop/安装DDE.md: /docs/zh/tools/desktop/dde/dde_installation.md diff --git a/docs/en/server/_toc.yaml b/docs/en/server/_toc.yaml index c067a81..bd488d3 100644 --- a/docs/en/server/_toc.yaml +++ b/docs/en/server/_toc.yaml @@ -44,15 +44,19 @@ sections: sections: - label: Overview sections: - - href: ./performance/overall/system_resource/_toc.yaml + - href: ./performance/system_resource/_toc.yaml + - label: Tuning Framework + sections: + - href: + upstream: https://gitee.com/openeuler/oeAware-manager/blob/master/docs/en/2203_lts_sp4/_toc.yaml + path: ./performance/oeaware - label: CPU Optimization sections: - - href: ./performance/cpu_optimization/kae/_toc.yaml + - href: ./performance/kae/_toc.yaml - label: System Optimization sections: - - href: ./performance/system_optimization/atune/_toc.yaml - - href: ./performance/tuning_framework/oeaware/_toc.yaml - - href: ./performance/system_optimization/powerapi/_toc.yaml + - href: ./performance/atune/_toc.yaml + - href: ./performance/powerapi/_toc.yaml - label: Application Development sections: - href: ./development/application_dev/_toc.yaml diff --git a/docs/en/server/performance/system_optimization/atune/_toc.yaml b/docs/en/server/performance/atune/_toc.yaml similarity index 100% rename from docs/en/server/performance/system_optimization/atune/_toc.yaml rename to docs/en/server/performance/atune/_toc.yaml diff --git a/docs/en/server/performance/system_optimization/atune/appendix.md b/docs/en/server/performance/atune/appendix.md similarity index 100% rename from docs/en/server/performance/system_optimization/atune/appendix.md rename to docs/en/server/performance/atune/appendix.md diff --git a/docs/en/server/performance/system_optimization/atune/figures/en-us_image_0213178479.png b/docs/en/server/performance/atune/figures/en-us_image_0213178479.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/en-us_image_0213178479.png rename to docs/en/server/performance/atune/figures/en-us_image_0213178479.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/en-us_image_0213178480.png b/docs/en/server/performance/atune/figures/en-us_image_0213178480.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/en-us_image_0213178480.png rename to docs/en/server/performance/atune/figures/en-us_image_0213178480.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/en-us_image_0214540398.png b/docs/en/server/performance/atune/figures/en-us_image_0214540398.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/en-us_image_0214540398.png rename to docs/en/server/performance/atune/figures/en-us_image_0214540398.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/en-us_image_0227497000.png b/docs/en/server/performance/atune/figures/en-us_image_0227497000.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/en-us_image_0227497000.png rename to docs/en/server/performance/atune/figures/en-us_image_0227497000.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/en-us_image_0227497343.png b/docs/en/server/performance/atune/figures/en-us_image_0227497343.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/en-us_image_0227497343.png rename to docs/en/server/performance/atune/figures/en-us_image_0227497343.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/en-us_image_0231122163.png b/docs/en/server/performance/atune/figures/en-us_image_0231122163.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/en-us_image_0231122163.png rename to docs/en/server/performance/atune/figures/en-us_image_0231122163.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/en-us_image_0245342444.png b/docs/en/server/performance/atune/figures/en-us_image_0245342444.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/en-us_image_0245342444.png rename to docs/en/server/performance/atune/figures/en-us_image_0245342444.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/picture1.png b/docs/en/server/performance/atune/figures/picture1.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/picture1.png rename to docs/en/server/performance/atune/figures/picture1.png diff --git a/docs/en/server/performance/system_optimization/atune/figures/picture4.png b/docs/en/server/performance/atune/figures/picture4.png similarity index 100% rename from docs/en/server/performance/system_optimization/atune/figures/picture4.png rename to docs/en/server/performance/atune/figures/picture4.png diff --git a/docs/en/server/performance/system_optimization/atune/getting_to_know_a_tune.md b/docs/en/server/performance/atune/getting_to_know_a_tune.md similarity index 100% rename from docs/en/server/performance/system_optimization/atune/getting_to_know_a_tune.md rename to docs/en/server/performance/atune/getting_to_know_a_tune.md diff --git a/docs/en/server/performance/system_optimization/atune/installation_and_deployment.md b/docs/en/server/performance/atune/installation_and_deployment.md similarity index 100% rename from docs/en/server/performance/system_optimization/atune/installation_and_deployment.md rename to docs/en/server/performance/atune/installation_and_deployment.md diff --git a/docs/en/server/performance/system_optimization/atune/usage_instructions.md b/docs/en/server/performance/atune/usage_instructions.md similarity index 100% rename from docs/en/server/performance/system_optimization/atune/usage_instructions.md rename to docs/en/server/performance/atune/usage_instructions.md diff --git a/docs/en/server/performance/cpu_optimization/kae/_toc.yaml b/docs/en/server/performance/kae/_toc.yaml similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/_toc.yaml rename to docs/en/server/performance/kae/_toc.yaml diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/RA-arch-1.png b/docs/en/server/performance/kae/figures/RA-arch-1.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/RA-arch-1.png rename to docs/en/server/performance/kae/figures/RA-arch-1.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/RA-arch-2.png b/docs/en/server/performance/kae/figures/RA-arch-2.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/RA-arch-2.png rename to docs/en/server/performance/kae/figures/RA-arch-2.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/TPCM.png b/docs/en/server/performance/kae/figures/TPCM.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/TPCM.png rename to docs/en/server/performance/kae/figures/TPCM.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/creat_datadisk.png b/docs/en/server/performance/kae/figures/creat_datadisk.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/creat_datadisk.png rename to docs/en/server/performance/kae/figures/creat_datadisk.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/creat_datadisk1.png b/docs/en/server/performance/kae/figures/creat_datadisk1.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/creat_datadisk1.png rename to docs/en/server/performance/kae/figures/creat_datadisk1.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png b/docs/en/server/performance/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png rename to docs/en/server/performance/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png b/docs/en/server/performance/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png rename to docs/en/server/performance/kae/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0229622729.png b/docs/en/server/performance/kae/figures/en-us_image_0229622729.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0229622729.png rename to docs/en/server/performance/kae/figures/en-us_image_0229622729.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0229622789.png b/docs/en/server/performance/kae/figures/en-us_image_0229622789.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0229622789.png rename to docs/en/server/performance/kae/figures/en-us_image_0229622789.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0230050789.png b/docs/en/server/performance/kae/figures/en-us_image_0230050789.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0230050789.png rename to docs/en/server/performance/kae/figures/en-us_image_0230050789.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143189.png b/docs/en/server/performance/kae/figures/en-us_image_0231143189.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143189.png rename to docs/en/server/performance/kae/figures/en-us_image_0231143189.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143191.png b/docs/en/server/performance/kae/figures/en-us_image_0231143191.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143191.png rename to docs/en/server/performance/kae/figures/en-us_image_0231143191.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143193.png b/docs/en/server/performance/kae/figures/en-us_image_0231143193.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143193.png rename to docs/en/server/performance/kae/figures/en-us_image_0231143193.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143195.png b/docs/en/server/performance/kae/figures/en-us_image_0231143195.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143195.png rename to docs/en/server/performance/kae/figures/en-us_image_0231143195.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143196.png b/docs/en/server/performance/kae/figures/en-us_image_0231143196.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143196.png rename to docs/en/server/performance/kae/figures/en-us_image_0231143196.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143197.png b/docs/en/server/performance/kae/figures/en-us_image_0231143197.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143197.png rename to docs/en/server/performance/kae/figures/en-us_image_0231143197.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143198.png b/docs/en/server/performance/kae/figures/en-us_image_0231143198.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231143198.png rename to docs/en/server/performance/kae/figures/en-us_image_0231143198.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563132.png b/docs/en/server/performance/kae/figures/en-us_image_0231563132.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563132.png rename to docs/en/server/performance/kae/figures/en-us_image_0231563132.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563134.png b/docs/en/server/performance/kae/figures/en-us_image_0231563134.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563134.png rename to docs/en/server/performance/kae/figures/en-us_image_0231563134.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563135.png b/docs/en/server/performance/kae/figures/en-us_image_0231563135.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563135.png rename to docs/en/server/performance/kae/figures/en-us_image_0231563135.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563136.png b/docs/en/server/performance/kae/figures/en-us_image_0231563136.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/en-us_image_0231563136.png rename to docs/en/server/performance/kae/figures/en-us_image_0231563136.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/etmem-system-architecture-en.png b/docs/en/server/performance/kae/figures/etmem-system-architecture-en.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/etmem-system-architecture-en.png rename to docs/en/server/performance/kae/figures/etmem-system-architecture-en.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/example-command-output.png b/docs/en/server/performance/kae/figures/example-command-output.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/example-command-output.png rename to docs/en/server/performance/kae/figures/example-command-output.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/ima_digest_list_update.png b/docs/en/server/performance/kae/figures/ima_digest_list_update.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/ima_digest_list_update.png rename to docs/en/server/performance/kae/figures/ima_digest_list_update.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/ima_performance.png b/docs/en/server/performance/kae/figures/ima_performance.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/ima_performance.png rename to docs/en/server/performance/kae/figures/ima_performance.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/ima_verification.png b/docs/en/server/performance/kae/figures/ima_verification.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/ima_verification.png rename to docs/en/server/performance/kae/figures/ima_verification.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/login.png b/docs/en/server/performance/kae/figures/login.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/login.png rename to docs/en/server/performance/kae/figures/login.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/mariadb-logical-architecture.png b/docs/en/server/performance/kae/figures/mariadb-logical-architecture.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/mariadb-logical-architecture.png rename to docs/en/server/performance/kae/figures/mariadb-logical-architecture.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/nginx-deployment-succeeded.png b/docs/en/server/performance/kae/figures/nginx-deployment-succeeded.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/nginx-deployment-succeeded.png rename to docs/en/server/performance/kae/figures/nginx-deployment-succeeded.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/nginx-startup-failure.png b/docs/en/server/performance/kae/figures/nginx-startup-failure.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/nginx-startup-failure.png rename to docs/en/server/performance/kae/figures/nginx-startup-failure.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/postgres.png b/docs/en/server/performance/kae/figures/postgres.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/postgres.png rename to docs/en/server/performance/kae/figures/postgres.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/postgresql-architecture.png b/docs/en/server/performance/kae/figures/postgresql-architecture.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/postgresql-architecture.png rename to docs/en/server/performance/kae/figures/postgresql-architecture.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/the-nginx-service-is-successfully-started.png b/docs/en/server/performance/kae/figures/the-nginx-service-is-successfully-started.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/the-nginx-service-is-successfully-started.png rename to docs/en/server/performance/kae/figures/the-nginx-service-is-successfully-started.png diff --git a/docs/en/server/performance/cpu_optimization/kae/figures/trusted_chain.png b/docs/en/server/performance/kae/figures/trusted_chain.png similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/figures/trusted_chain.png rename to docs/en/server/performance/kae/figures/trusted_chain.png diff --git a/docs/en/server/performance/cpu_optimization/kae/using_the_kae.md b/docs/en/server/performance/kae/using_the_kae.md similarity index 100% rename from docs/en/server/performance/cpu_optimization/kae/using_the_kae.md rename to docs/en/server/performance/kae/using_the_kae.md diff --git a/docs/en/server/performance/system_optimization/powerapi/_toc.yaml b/docs/en/server/performance/powerapi/_toc.yaml similarity index 100% rename from docs/en/server/performance/system_optimization/powerapi/_toc.yaml rename to docs/en/server/performance/powerapi/_toc.yaml diff --git a/docs/en/server/performance/system_optimization/powerapi/development_using_powerapi.md b/docs/en/server/performance/powerapi/development_using_powerapi.md similarity index 100% rename from docs/en/server/performance/system_optimization/powerapi/development_using_powerapi.md rename to docs/en/server/performance/powerapi/development_using_powerapi.md diff --git a/docs/en/server/performance/system_optimization/powerapi/getting_to_know_powerapi.md b/docs/en/server/performance/powerapi/getting_to_know_powerapi.md similarity index 100% rename from docs/en/server/performance/system_optimization/powerapi/getting_to_know_powerapi.md rename to docs/en/server/performance/powerapi/getting_to_know_powerapi.md diff --git a/docs/en/server/performance/system_optimization/powerapi/installation_usage.md b/docs/en/server/performance/powerapi/installation_usage.md similarity index 76% rename from docs/en/server/performance/system_optimization/powerapi/installation_usage.md rename to docs/en/server/performance/powerapi/installation_usage.md index d911a95..d3fe4b7 100644 --- a/docs/en/server/performance/system_optimization/powerapi/installation_usage.md +++ b/docs/en/server/performance/powerapi/installation_usage.md @@ -10,5 +10,5 @@ yum install powerapi ## Usage -After powerapi is installed, pwarapis automatically runs to provide power consumption management services for eagle and third-party systems. +After powerapi is installed, pwrapis automatically runs to provide power consumption management services for eagle and third-party systems. Currently, powerapi cannot be used through the CLI. To use a powerapi function, you need to install powerapi-devel and call the functions after the header file is included in the source code. For details, see [Development Using powerapi](development_using_powerapi.md). diff --git a/docs/en/server/performance/system_optimization/powerapi/powerapi.md b/docs/en/server/performance/powerapi/powerapi.md similarity index 100% rename from docs/en/server/performance/system_optimization/powerapi/powerapi.md rename to docs/en/server/performance/powerapi/powerapi.md diff --git a/docs/en/server/performance/overall/system_resource/_toc.yaml b/docs/en/server/performance/system_resource/_toc.yaml similarity index 100% rename from docs/en/server/performance/overall/system_resource/_toc.yaml rename to docs/en/server/performance/system_resource/_toc.yaml diff --git a/docs/en/server/performance/overall/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png b/docs/en/server/performance/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png rename to docs/en/server/performance/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001321685172.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001321685172.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001321685172.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001321685172.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322112990.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001322112990.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322112990.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001322112990.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322219840.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001322219840.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322219840.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001322219840.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322372918.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001322372918.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322372918.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001322372918.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322379488.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001322379488.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001322379488.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001322379488.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001335457246.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001335457246.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001335457246.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001335457246.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337000118.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337000118.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337000118.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337000118.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337039920.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337039920.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337039920.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337039920.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337053248.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337053248.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337053248.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337053248.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337172594.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337172594.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337172594.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337172594.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337260780.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337260780.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337260780.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337260780.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337420372.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337420372.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337420372.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337420372.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337533690.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337533690.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337533690.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337533690.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337536842.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337536842.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337536842.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337536842.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337580216.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337580216.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337580216.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337580216.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337696078.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337696078.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337696078.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337696078.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337740252.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337740252.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337740252.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337740252.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337740540.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001337740540.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001337740540.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001337740540.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372249333.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001372249333.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372249333.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001372249333.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372748125.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001372748125.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372748125.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001372748125.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372821865.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001372821865.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372821865.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001372821865.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372824637.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001372824637.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001372824637.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001372824637.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001373373585.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001373373585.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001373373585.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001373373585.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001373379529.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001373379529.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001373379529.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001373379529.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001384808269.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001384808269.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001384808269.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001384808269.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001385585749.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001385585749.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001385585749.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001385585749.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001385611905.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001385611905.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001385611905.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001385611905.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001386699925.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001386699925.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001386699925.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001386699925.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387293085.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387293085.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387293085.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387293085.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387413509.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387413509.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387413509.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387413509.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387413793.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387413793.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387413793.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387413793.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387415629.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387415629.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387415629.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387415629.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387692269.jpg b/docs/en/server/performance/system_resource/images/en-us_image_0000001387692269.jpg similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387692269.jpg rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387692269.jpg diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387692893.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387692893.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387692893.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387692893.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387755969.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387755969.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387755969.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387755969.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387780357.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387780357.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387780357.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387780357.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387855149.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387855149.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387855149.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387855149.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387857005.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001387857005.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001387857005.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001387857005.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001388020197.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001388020197.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001388020197.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001388020197.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001388972645.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001388972645.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001388972645.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001388972645.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_image_0000001389098425.png b/docs/en/server/performance/system_resource/images/en-us_image_0000001389098425.png similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_image_0000001389098425.png rename to docs/en/server/performance/system_resource/images/en-us_image_0000001389098425.png diff --git a/docs/en/server/performance/overall/system_resource/images/en-us_other_0000001337581224.jpeg b/docs/en/server/performance/system_resource/images/en-us_other_0000001337581224.jpeg similarity index 100% rename from docs/en/server/performance/overall/system_resource/images/en-us_other_0000001337581224.jpeg rename to docs/en/server/performance/system_resource/images/en-us_other_0000001337581224.jpeg diff --git a/docs/en/server/performance/overall/system_resource/system_resources_and_performance.md b/docs/en/server/performance/system_resource/system_resources_and_performance.md similarity index 100% rename from docs/en/server/performance/overall/system_resource/system_resources_and_performance.md rename to docs/en/server/performance/system_resource/system_resources_and_performance.md diff --git a/docs/en/server/performance/tuning_framework/oeaware/_toc.yaml b/docs/en/server/performance/tuning_framework/oeaware/_toc.yaml deleted file mode 100644 index 20851b3..0000000 --- a/docs/en/server/performance/tuning_framework/oeaware/_toc.yaml +++ /dev/null @@ -1,6 +0,0 @@ -label: oeAware User Guide -isManual: true -description: oeAware is a framework that provides low-load collection, sensing, and tuning on openEuler -sections: - - label: oeAware User Guide - href: ./oeaware_user_guide.md diff --git a/docs/en/server/performance/tuning_framework/oeaware/figures/dep-failed.png b/docs/en/server/performance/tuning_framework/oeaware/figures/dep-failed.png deleted file mode 100644 index afb4750135657876b455978bf9d8f5eff36be91e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32639 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 diff --git a/docs/en/server/performance/tuning_framework/oeaware/figures/dependency.png b/docs/en/server/performance/tuning_framework/oeaware/figures/dependency.png deleted file mode 100644 index 0cd087fb0c9095e63aa76e0d2464a92225af2399..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27727 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 diff --git a/docs/en/server/performance/tuning_framework/oeaware/oeaware_user_guide.md b/docs/en/server/performance/tuning_framework/oeaware/oeaware_user_guide.md deleted file mode 100644 index 6064739..0000000 --- a/docs/en/server/performance/tuning_framework/oeaware/oeaware_user_guide.md +++ /dev/null @@ -1,521 +0,0 @@ -# oeAware User Guide - -## Introduction - -oeAware is a framework for implementing low-load collection, sensing, and tuning on openEuler. It aims to intelligently enable optimization features after dynamically detecting system behaviors. Traditional optimization features run independently and are statically enabled or disabled. oeAware divides optimization into three layers: collection, sensing, and tuning. Each layer is associated through subscription and is developed as plugins. - -## Plugin Description - -**Plugin definition**: Each plugin corresponds to an .so file. Plugins are classified into collection plugins, sensing plugins, and tuning plugins. - -**Instance definition**: The scheduling unit in the service is instance. A plugin contains multiple instances. For example, a collection plugin includes multiple collection items, and each collection item is an instance. - -**Dependencies Between Instances** - -Before running an instance, ensure that the dependency between the instances is met. - -![img](./figures/dependency.png) - -- A collection instance does not depend on any other instance. - -- A sensing instance depends on a collection instance and other sensing instances. - -- A tuning instance depends on a collection instance, sensing instance, and other tuning instances. - -## Installation - -Configure the openEuler Yum repository and run the `yum` commands to install oeAware. on openEuler 22.03 LTS SP4, oeAware has been installed by default. - -```shell -yum install oeAware-manager -``` - -### Service Startup - -Run the `systemd` command to start the service. - -```shell -systemctl start oeaware -``` - -Skip this step - -Configuration file path: **/etc/oeAware/config.yaml** - -```yaml -log_path: /var/log/oeAware # Log storage path -log_level: 1 # Log level. 1: DEBUG; 2: INFO; 3: WARN; 4: ERROR. -enable_list: # Plugins are enabled by default. - - name: libtest.so # Configure the plugin and enable all instances of the plugin. - - name: libtest1.so # Configure the plugin and enable the specified plugin instances. - instances: - - instance1 - - instance2 - ... - ... -plugin_list: # Downloaded packages are supported. - - name: test #The name must be unique. If the name is repeated, the first occurrence is used. - description: hello world - url: https://gitee.com/openeuler/oeAware-manager/raw/master/README.md #url must not be empty. - ... -``` - -After modifying the configuration file, run the following commands to restart the service: - -```shell -systemctl daemon-reload -systemctl restart oeaware -``` - -## Usage - -Start the oeaware service. Then, manage plugins and instances using the `oeawarectl` command, which supports loading, unloading, and querying plugins, along with enabling, disabling, and querying instances. - -### Plugin Loading - -By default, the service loads the plugins in the plugin storage paths. - -Collection plugin path: /usr/lib64/oeAware-plugin/collector - -Sensing plugin path: /usr/lib64/oeAware-plugin/scenario - -Tuning plugin path: /usr/lib64/oeAware-plugin/tune - -You can also manually load the plugins. - -```shell -oeawarectl -l | --load -t | --type # plugin type can be collector, scenario, or tune -``` - -Example - -```shell -[root@localhost ~]# oeawarectl -l libthread_collect.so -t collector -Plugin loaded successfully. -``` - -If the operation fails, an error description is returned. - -### Plugin Unloading - -```shell -oeawarectl -r | --remove -``` - -Example - -```shell -[root@localhost ~]# oeawarectl -r libthread_collect.so -Plugin remove successfully. -``` - -If the operation fails, an error description is returned. - -### Plugin Query - -#### Querying Plugin Status - -```shell -oeawarectl -q # Query all loaded plugins. -oeawarectl --query # Query a specified plugin. -``` - -Example - -```shell -[root@localhost ~]# oeawarectl -q -Show plugins and instances status. ------------------------------------------------------------- -libthread_collector.so - thread_collector(available, close) # Plugin instance and status -libpmu.so - pmu_cycles_sampling(available, close) - pmu_cycles_counting(available, close) - pmu_uncore_counting(available, close) - pmu_spe_sampling(available, close) -libthread_tune.so - thread_tune(available, close) -libthread_scenario.so - thread_scenario(available, close) ------------------------------------------------------------- -format: -[plugin] - [instance]([dependency status], [running status]) -dependency status: available means satisfying dependency, otherwise unavailable. -running status: running means that instance is running, otherwise close. -``` - -If the operation fails, an error description is returned. - -#### Querying Plugin Dependencies - -```shell -oeawarectl -Q # Query the dependency graph of loaded instances. -oeawarectl --query-dep= # Query the dependency graph of a specified instance. -``` - -A **dep.png** file will be generated in the current directory to display the dependencies. - -Example - -Relationship diagram when dependencies are met - -![img](./figures/dep.png) - -Relationship diagram when dependencies are not met - -![img](./figures/dep-failed.png) - -If the operation fails, an error description is returned. - -### Enabling Plugins - -#### Enabling a Plugin Instance - -```shell -oeawarectl -e | --enable -``` - -If the operation fails, an error description is returned. - -#### Disabling a Plugin Instance - -```shell -oeawarectl -d | --disable -``` - -If the operation fails, an error description is returned. - -### Downloading and Installing Plugins - -Use the `--list` command to query the RPM packages that can be downloaded and installed plugins. - -```shell -oeawarectl --list -``` - -The query result is as follows: - -```shell -Supported Packages: # Downloadable packages -[name1] # plugin_list configured in config -[name2] -... -Installed Plugins: # Installed plugins -[name1] -[name2] -... -``` - -Use the `--install` command to download and install the RPM package. - -```shell -oeawarectl -i | --install # Name of a package queried using --list (package in Supported Packages) -``` - -If the operation fails, an error description is returned. - -### Help - -Use the `--help` command for help information. - -```shell -usage: oeawarectl [options]... - options - -l|--load [plugin] load plugin and need plugin type. - -t|--type [plugin_type] assign plugin type. there are three types: - collector: collection plugin. - scenario: awareness plugin. - tune: tune plugin. - -r|--remove [plugin] remove plugin from system. - -e|--enable [instance] enable the plugin instance. - -d|--disable [instance] disable the plugin instance. - -q query all plugins information. - --query [plugin] query the plugin information. - -Q query all instances dependencies. - --query-dep [instance] query the instance dependency. - --list the list of supported plugins. - -i|--install [plugin] install plugin from the list. - --help show this help message. -``` - -## Plugin Development - -### Common Data Structures of Plugins - -```c -struct DataBuf { - int len; - void *data; -}; -``` - -**struct DataBuf** is the data buffer. - -- **data**: specific data. **data** is an array. The data type can be defined as required. -- len: size of **data**. - -```c -struct DataRingBuf { - const char *instance_name; - int index; - uint64_t count; - struct DataBuf *buf; - int buf_len; -}; -``` - -**struct DataRingBuf** facilitates data transfer between plugins, primarily utilizing a circular buffer. - -- **instance_name**: instance of the incoming data. For instance, when data reaches a perception plugin, it distinguishes which collection item belongs to which collection plugin. - -- **index**: current data write position. For example, after each data collection, the index increments. - -- **count**: execution count of the instance, continuously accumulating. - -- **buf**: data buffer. Some collection items require multiple samplings before the perception plugin processes them, so the buf array stores these samples. - -- **buf_len**: size of the data buffer. Once the buffer is initialized, **buf_len** remains constant. - -```C -struct Param { - const struct DataRingBuf **ring_bufs; - int len; -}; -``` - -- **ring_bufs**: data required by the instance, sourced from other instances. -- **len**: length of the **ring_bufs** array. - -### Instance Interfaces - -```C -struct Interface { - const char* (*get_version)(); - /* The instance name is a unique identifier in the system. */ - const char* (*get_name)(); - const char* (*get_description)(); - /* Specifies the instance dependencies, which is used as the input information - * for instance execution. - */ - const char* (*get_dep)(); - /* Instance scheduling priority. In a uniform time period, a instance with a - * lower priority is scheduled first. - */ - int (*get_priority)(); - int (*get_type)(); - /* Instance execution period. */ - int (*get_period)(); - bool (*enable)(); - void (*disable)(); - const struct DataRingBuf* (*get_ring_buf)(); - void (*run)(const struct Param*); -}; -``` - -```c -int get_instance(Interface **interface); -``` - -Every plugin includes a **get_instance** function to provide instances to the framework. - -Obtaining the version number - -1. Interface definition - - ```c - char* (*get_version)(); - ``` - -2. Interface description - -3. Parameter description - -4. Return value description - - The specific version number is returned. This interface is reserved. - -Obtaining the instance name - -1. Interface definition - - ```c - char* (*get_name)(); - ``` - -2. Interface description - - Obtains the name of an instance. When you run the `-q` command on the client, the instance name is displayed. In addition, you can run the `--enable` command to enable the instance. - -3. Parameter description - -4. Return value description - - The name of the instance is returned. Ensure that the instance name is unique. - -Obtaining description information - -1. Interface definition - - ```c - char* (*get_description)(); - ``` - -2. Interface description - -3. Parameter description - -4. Return value description - - The detailed description is returned. This interface is reserved. - -Obtaining the type - -1. Interface definition - - ```c - char* (*get_type)(); - ``` - -2. Interface description - -3. Parameter description - -4. Return value description - - The specific type information is returned. This interface is reserved. - -Obtaining the sampling period - -1. Interface definition - - ```c - int (*get_cycle)(); - ``` - -2. Interface description - - Obtains the sampling period. Different collection items can use different collection periods. - -3. Parameter description - -4. Return value description - - The specific sampling period is returned. The unit is ms. - -Obtaining dependencies - -1. Interface definition - - ```c - char* (*get_dep)(); - ``` - -2. Interface description - -3. Parameter description - -4. Return value description - - Information about the dependent instances is returned. This interface is reserved. - -Enabling an instance - -1. Interface definition - - ```c - void (*enable)(); - ``` - -2. Interface description - - Enables an instance. - -3. Parameter description - -4. Return value description - -Disabling an instance - -1. Interface definition - - ```c - void (*disable)(); - ``` - -2. Interface description - - Disables an instance. - -3. Parameter description - -4. Return value description - -Obtaining the data buffer - -1. Interface definition - - ```c - const DataRingBuf* (*get_ring_buf)(); - ``` - -2. Interface description - - Obtains the buffer management pointer of the collection data (the memory is applied for by the plugin). The pointer is used by sensing plugins. - -3. Parameter description - -4. Return value description - - The **struct DataRingBuf** management pointer is returned. - -Executing an instance - -1. Interface definition - - ```c - void (*run)(const Param*); - ``` - -2. Interface description - - Runs at regular intervals according to the execution cycle. - -3. Parameter description - - Contains the data necessary for the instance to execute. - -4. Return value description - -## Supported Plugins - -- **libpmu.so**: collects PMU-related data. -- **libthread_collector.so**: gathers thread information within the system. -- **libthread_scenario.so**: monitors details of a specific thread. -- **libthread_tune.so**: enhances UnixBench performance. -- **libsmc_tune.so**: enables SMC acceleration for seamless TCP protocol performance improvements. -- **libtune_numa.so**: optimizes cross-NUMA node memory access to boost system performance. - -## Constraints - -### Function Constraints - -By default, oeAware integrates the libkperf module for collecting Arm microarchitecture information. This module can be called by only one process at a time. If this module is called by other processes or the perf command is used, conflicts may occur. - -### Operation Constraints - -Currently, only the **root** user can operate oeAware. - -## Notes - -The user group and permission of the oeAware configuration file and plugins are strictly verified. Do not modify the permissions and user group of oeAware-related files. - -Permissions: - -- Plugin files: 440 - -- Client executable file: 750 - -- Server executable file: 750 - -- Service configuration file: 640 diff --git a/docs/zh/server/_toc.yaml b/docs/zh/server/_toc.yaml index 397fd1e..9c63f30 100644 --- a/docs/zh/server/_toc.yaml +++ b/docs/zh/server/_toc.yaml @@ -45,21 +45,23 @@ sections: sections: - label: 概述 sections: - - href: ./performance/overall/system_resource/_toc.yaml + - href: ./performance/system_resource/_toc.yaml - label: 调优框架 sections: - - href: ./performance/tuning_framework/oeaware/_toc.yaml + - href: + upstream: https://gitee.com/openeuler/oeAware-manager/blob/master/docs/zh/2203_lts_sp4/_toc.yaml + path: ./performance/oeaware - label: CPU调优 sections: - - href: ./performance/cpu_optimization/kae/_toc.yaml + - href: ./performance/kae/_toc.yaml - label: 存储调优 sections: - - href: ./performance/storage_optimization/fuse/_toc.yaml + - href: ./performance/fuse/_toc.yaml - label: 系统调优 sections: - - href: ./performance/system_optimization/atune/_toc.yaml - - href: ./performance/system_optimization/powerapi/_toc.yaml - - href: ./performance/system_optimization/eagle/_toc.yaml + - href: ./performance/atune/_toc.yaml + - href: ./performance/eagle/_toc.yaml + - href: ./performance/powerapi/_toc.yaml - label: 应用开发 sections: - href: ./development/application_dev/_toc.yaml diff --git a/docs/zh/server/performance/system_optimization/atune/_toc.yaml b/docs/zh/server/performance/atune/_toc.yaml similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/_toc.yaml rename to docs/zh/server/performance/atune/_toc.yaml diff --git a/docs/zh/server/performance/system_optimization/atune/appendix.md b/docs/zh/server/performance/atune/appendix.md similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/appendix.md rename to docs/zh/server/performance/atune/appendix.md diff --git a/docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0213178479.png b/docs/zh/server/performance/atune/figures/zh-cn_image_0213178479.png similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0213178479.png rename to docs/zh/server/performance/atune/figures/zh-cn_image_0213178479.png diff --git a/docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0213178480.png b/docs/zh/server/performance/atune/figures/zh-cn_image_0213178480.png similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0213178480.png rename to docs/zh/server/performance/atune/figures/zh-cn_image_0213178480.png diff --git a/docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0214540398.png b/docs/zh/server/performance/atune/figures/zh-cn_image_0214540398.png similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0214540398.png rename to docs/zh/server/performance/atune/figures/zh-cn_image_0214540398.png diff --git a/docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0227497000.png b/docs/zh/server/performance/atune/figures/zh-cn_image_0227497000.png similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0227497000.png rename to docs/zh/server/performance/atune/figures/zh-cn_image_0227497000.png diff --git a/docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0227497343.png b/docs/zh/server/performance/atune/figures/zh-cn_image_0227497343.png similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0227497343.png rename to docs/zh/server/performance/atune/figures/zh-cn_image_0227497343.png diff --git a/docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0231122163.png b/docs/zh/server/performance/atune/figures/zh-cn_image_0231122163.png similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0231122163.png rename to docs/zh/server/performance/atune/figures/zh-cn_image_0231122163.png diff --git a/docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0245342444.png b/docs/zh/server/performance/atune/figures/zh-cn_image_0245342444.png similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/figures/zh-cn_image_0245342444.png rename to docs/zh/server/performance/atune/figures/zh-cn_image_0245342444.png diff --git a/docs/zh/server/performance/system_optimization/atune/getting_to_know_a_tune.md b/docs/zh/server/performance/atune/getting_to_know_a_tune.md similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/getting_to_know_a_tune.md rename to docs/zh/server/performance/atune/getting_to_know_a_tune.md diff --git a/docs/zh/server/performance/system_optimization/atune/installation_and_deployment.md b/docs/zh/server/performance/atune/installation_and_deployment.md similarity index 98% rename from docs/zh/server/performance/system_optimization/atune/installation_and_deployment.md rename to docs/zh/server/performance/atune/installation_and_deployment.md index 703a9a6..11eba16 100644 --- a/docs/zh/server/performance/system_optimization/atune/installation_and_deployment.md +++ b/docs/zh/server/performance/atune/installation_and_deployment.md @@ -14,7 +14,7 @@ ## 环境准备 -- 安装openEuler系统,安装方法参考 《[openEuler 22.03 LTS SP4安装指南](./../../../installation_upgrade/installation/installation_guide.md)》。 +- 安装openEuler系统,安装方法参考 [《openEuler 22.03 LTS SP4安装指南》](./../../installation_upgrade/installation/installation_guide.md)。 - 安装A-Tune需要使用root权限。 diff --git a/docs/zh/server/performance/system_optimization/atune/usage_instructions.md b/docs/zh/server/performance/atune/usage_instructions.md similarity index 100% rename from docs/zh/server/performance/system_optimization/atune/usage_instructions.md rename to docs/zh/server/performance/atune/usage_instructions.md diff --git a/docs/zh/server/performance/system_optimization/eagle/_toc.yaml b/docs/zh/server/performance/eagle/_toc.yaml similarity index 100% rename from docs/zh/server/performance/system_optimization/eagle/_toc.yaml rename to docs/zh/server/performance/eagle/_toc.yaml diff --git a/docs/zh/server/performance/system_optimization/eagle/eagle_installation_and_usage.md b/docs/zh/server/performance/eagle/eagle_installation_and_usage.md similarity index 100% rename from docs/zh/server/performance/system_optimization/eagle/eagle_installation_and_usage.md rename to docs/zh/server/performance/eagle/eagle_installation_and_usage.md diff --git a/docs/zh/server/performance/storage_optimization/fuse/_toc.yaml b/docs/zh/server/performance/fuse/_toc.yaml similarity index 100% rename from docs/zh/server/performance/storage_optimization/fuse/_toc.yaml rename to docs/zh/server/performance/fuse/_toc.yaml diff --git a/docs/zh/server/performance/storage_optimization/fuse/fuse_acceleration_feature_guide.md b/docs/zh/server/performance/fuse/fuse_acceleration_feature_guide.md similarity index 100% rename from docs/zh/server/performance/storage_optimization/fuse/fuse_acceleration_feature_guide.md rename to docs/zh/server/performance/fuse/fuse_acceleration_feature_guide.md diff --git a/docs/zh/server/performance/cpu_optimization/kae/_toc.yaml b/docs/zh/server/performance/kae/_toc.yaml similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/_toc.yaml rename to docs/zh/server/performance/kae/_toc.yaml diff --git a/docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143189.png b/docs/zh/server/performance/kae/figures/zh-cn_image_0231143189.png similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143189.png rename to docs/zh/server/performance/kae/figures/zh-cn_image_0231143189.png diff --git a/docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143191.png b/docs/zh/server/performance/kae/figures/zh-cn_image_0231143191.png similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143191.png rename to docs/zh/server/performance/kae/figures/zh-cn_image_0231143191.png diff --git a/docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143193.png b/docs/zh/server/performance/kae/figures/zh-cn_image_0231143193.png similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143193.png rename to docs/zh/server/performance/kae/figures/zh-cn_image_0231143193.png diff --git a/docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143195.png b/docs/zh/server/performance/kae/figures/zh-cn_image_0231143195.png similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143195.png rename to docs/zh/server/performance/kae/figures/zh-cn_image_0231143195.png diff --git a/docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143196.png b/docs/zh/server/performance/kae/figures/zh-cn_image_0231143196.png similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143196.png rename to docs/zh/server/performance/kae/figures/zh-cn_image_0231143196.png diff --git a/docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143197.png b/docs/zh/server/performance/kae/figures/zh-cn_image_0231143197.png similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143197.png rename to docs/zh/server/performance/kae/figures/zh-cn_image_0231143197.png diff --git a/docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143198.png b/docs/zh/server/performance/kae/figures/zh-cn_image_0231143198.png similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/figures/zh-cn_image_0231143198.png rename to docs/zh/server/performance/kae/figures/zh-cn_image_0231143198.png diff --git a/docs/zh/server/performance/cpu_optimization/kae/using_the_kae.md b/docs/zh/server/performance/kae/using_the_kae.md similarity index 100% rename from docs/zh/server/performance/cpu_optimization/kae/using_the_kae.md rename to docs/zh/server/performance/kae/using_the_kae.md diff --git a/docs/zh/server/performance/system_optimization/powerapi/_toc.yaml b/docs/zh/server/performance/powerapi/_toc.yaml similarity index 100% rename from docs/zh/server/performance/system_optimization/powerapi/_toc.yaml rename to docs/zh/server/performance/powerapi/_toc.yaml diff --git a/docs/zh/server/performance/system_optimization/powerapi/development_using_powerapi.md b/docs/zh/server/performance/powerapi/development_using_powerapi.md similarity index 100% rename from docs/zh/server/performance/system_optimization/powerapi/development_using_powerapi.md rename to docs/zh/server/performance/powerapi/development_using_powerapi.md diff --git a/docs/zh/server/performance/system_optimization/powerapi/getting_to_know_powerapi.md b/docs/zh/server/performance/powerapi/getting_to_know_powerapi.md similarity index 100% rename from docs/zh/server/performance/system_optimization/powerapi/getting_to_know_powerapi.md rename to docs/zh/server/performance/powerapi/getting_to_know_powerapi.md diff --git a/docs/zh/server/performance/system_optimization/powerapi/installation_usage.md b/docs/zh/server/performance/powerapi/installation_usage.md similarity index 100% rename from docs/zh/server/performance/system_optimization/powerapi/installation_usage.md rename to docs/zh/server/performance/powerapi/installation_usage.md diff --git a/docs/zh/server/performance/system_optimization/powerapi/powerapi.md b/docs/zh/server/performance/powerapi/powerapi.md similarity index 100% rename from docs/zh/server/performance/system_optimization/powerapi/powerapi.md rename to docs/zh/server/performance/powerapi/powerapi.md diff --git a/docs/zh/server/performance/overall/system_resource/_toc.yaml b/docs/zh/server/performance/system_resource/_toc.yaml similarity index 100% rename from docs/zh/server/performance/overall/system_resource/_toc.yaml rename to docs/zh/server/performance/system_resource/_toc.yaml diff --git a/docs/zh/server/performance/overall/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png b/docs/zh/server/performance/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png rename to docs/zh/server/performance/system_resource/images/c50cb9df64f4659787c810167c89feb4_1884x257.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001321685172.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001321685172.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001321685172.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001321685172.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322112990.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322112990.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322112990.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322112990.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322219840.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322219840.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322219840.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322219840.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322372918.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322372918.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322372918.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322372918.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322379488.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322379488.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001322379488.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001322379488.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001335457246.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001335457246.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001335457246.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001335457246.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001335816300.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001335816300.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001335816300.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001335816300.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001336448570.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001336448570.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001336448570.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001336448570.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001336729664.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001336729664.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001336729664.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001336729664.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337000118.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337000118.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337000118.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337000118.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337039920.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337039920.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337039920.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337039920.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337051916.jpg b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337051916.jpg similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337051916.jpg rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337051916.jpg diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337053248.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337053248.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337053248.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337053248.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337172594.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337172594.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337172594.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337172594.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337212144.jpg b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337212144.jpg similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337212144.jpg rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337212144.jpg diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337260780.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337260780.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337260780.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337260780.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337268560.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337268560.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337268560.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337268560.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337268820.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337268820.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337268820.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337268820.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337419960.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337419960.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337419960.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337419960.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337420372.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337420372.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337420372.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337420372.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337422904.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337422904.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337422904.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337422904.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337424024.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337424024.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337424024.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337424024.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337424304.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337424304.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337424304.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337424304.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337427216.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337427216.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337427216.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337427216.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337427392.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337427392.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337427392.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337427392.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337533690.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337533690.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337533690.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337533690.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337536842.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337536842.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337536842.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337536842.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337579708.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337579708.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337579708.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337579708.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337580216.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337580216.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337580216.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337580216.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337584296.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337584296.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337584296.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337584296.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337696078.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337696078.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337696078.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337696078.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337740252.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337740252.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337740252.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337740252.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337740540.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337740540.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337740540.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337740540.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337747132.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337747132.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337747132.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337747132.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337748300.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337748300.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337748300.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337748300.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337748528.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337748528.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001337748528.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001337748528.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372249333.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372249333.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372249333.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372249333.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372748125.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372748125.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372748125.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372748125.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372821865.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372821865.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372821865.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372821865.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372824637.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372824637.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001372824637.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001372824637.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001373373585.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001373373585.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001373373585.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001373373585.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001373379529.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001373379529.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001373379529.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001373379529.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001384808269.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001384808269.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001384808269.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001384808269.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001385585749.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001385585749.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001385585749.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001385585749.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001385611905.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001385611905.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001385611905.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001385611905.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001385905845.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001385905845.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001385905845.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001385905845.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001386149037.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001386149037.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001386149037.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001386149037.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001386699925.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001386699925.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001386699925.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001386699925.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387293085.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387293085.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387293085.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387293085.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387413509.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387413509.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387413509.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387413509.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387413793.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387413793.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387413793.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387413793.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387415629.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387415629.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387415629.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387415629.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387691985.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387691985.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387691985.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387691985.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387692269.jpg b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387692269.jpg similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387692269.jpg rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387692269.jpg diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387692893.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387692893.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387692893.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387692893.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387755969.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387755969.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387755969.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387755969.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387780357.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387780357.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387780357.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387780357.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387784693.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387784693.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387784693.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387784693.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387787605.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387787605.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387787605.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387787605.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387855149.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387855149.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387855149.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387855149.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387857005.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387857005.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387857005.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387857005.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387902849.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387902849.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387902849.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387902849.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387907229.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387907229.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387907229.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387907229.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387908045.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387908045.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387908045.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387908045.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387908453.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387908453.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387908453.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387908453.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387961737.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387961737.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001387961737.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001387961737.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388020197.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388020197.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388020197.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388020197.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388024321.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388024321.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388024321.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388024321.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388024397.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388024397.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388024397.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388024397.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388028161.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388028161.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388028161.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388028161.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388028537.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388028537.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388028537.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388028537.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388184025.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388184025.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388184025.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388184025.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388187249.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388187249.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388187249.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388187249.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388187325.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388187325.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388187325.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388187325.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388188365.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388188365.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388188365.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388188365.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388241577.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388241577.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388241577.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388241577.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388972645.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388972645.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001388972645.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001388972645.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001389098425.png b/docs/zh/server/performance/system_resource/images/zh-cn_image_0000001389098425.png similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_image_0000001389098425.png rename to docs/zh/server/performance/system_resource/images/zh-cn_image_0000001389098425.png diff --git a/docs/zh/server/performance/overall/system_resource/images/zh-cn_other_0000001337581224.jpeg b/docs/zh/server/performance/system_resource/images/zh-cn_other_0000001337581224.jpeg similarity index 100% rename from docs/zh/server/performance/overall/system_resource/images/zh-cn_other_0000001337581224.jpeg rename to docs/zh/server/performance/system_resource/images/zh-cn_other_0000001337581224.jpeg diff --git a/docs/zh/server/performance/overall/system_resource/system_resources_and_performance.md b/docs/zh/server/performance/system_resource/system_resources_and_performance.md similarity index 100% rename from docs/zh/server/performance/overall/system_resource/system_resources_and_performance.md rename to docs/zh/server/performance/system_resource/system_resources_and_performance.md diff --git a/docs/zh/server/performance/tuning_framework/oeaware/_toc.yaml b/docs/zh/server/performance/tuning_framework/oeaware/_toc.yaml deleted file mode 100644 index 9ada4c0..0000000 --- a/docs/zh/server/performance/tuning_framework/oeaware/_toc.yaml +++ /dev/null @@ -1,6 +0,0 @@ -label: oeAware用户指南 -isManual: true -description: oeAware是在openEuler上实现低负载采集感知调优的框架 -sections: - - label: oeAware用户指南 - href: ./oeaware_user_guide.md diff --git a/docs/zh/server/performance/tuning_framework/oeaware/figures/dep-failed.png b/docs/zh/server/performance/tuning_framework/oeaware/figures/dep-failed.png deleted file mode 100644 index 7c98140ff9545ba7943c04cb2dc414fcc39b03e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44465 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 diff --git a/docs/zh/server/performance/tuning_framework/oeaware/figures/dep.png b/docs/zh/server/performance/tuning_framework/oeaware/figures/dep.png deleted file mode 100644 index 06875fc73adae0a4379e30722a9864197212c55a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45348 zcmcG$cQ}@RA3olYjN(>S_9#?B%E-(vSxMQHgk(ncC@D%&Ns<*RNr>!OBqS?j?@jjJ zzw>^c?{gf#zklO;j^p#R-1l|8->-4L&hvaok z^BvhP{E5vzYEk?jso4b;#U0zk|Gh0r4BfGVW5;<#IUTpCe_ifIY7^T#W)h9pKY8m~ zJvTq0qj=k%=3<*`YGqbh%h2tTSGP)X%>^?Q18+YMbZJmNGWkB~!;SV^f9KZ+-0%1} zT}Zg`=5gJ6h{>tO2&b5cGb8RXbzfOI{Wu8t-v3-2e5KOS|NG4jS$ZAI?(zNa*Z2I+(*B=c-#shGL3~W&b@nX>Vb6bmxr0NC5J-Gj;zi*5 zfAR5;DCVx7JbAJrgq>lK=3Z}Ck!MbdFRQGN6c3N`vq%5uuF39ZWi9@E%G^;>bk;L#IeJ{(ILuig~|U)=iBXUJd?#{NNvD4hH^hYU(U-4N*?$ON@()Qwe5~BRd)K z+p;dk-P3crBPV2;jm(dXnz|>~abUP6vOqG6pMIh|h=EzurZxZ0Emw9*+|KB;moHz| z*K2L$rl&hr1hd|}d6O)zu(0ryWv$wq(@CE{e^xn2wqr-{dW+bu24*okJw3hOG13JY z83#&kPj%)Mc`pAMbLI)vH#GDd{vFZZ-=E!GYw>lq=fj5&CEHt)va%%w2Y;Ij>+}EZ z@!dAo(`${Hbfmyy-L(sgjxMrp{uHMWu(rC|rz?Ew6g8^^EhA$fA--{plauq>wQDR? zi7KJw|NHjU`H}6pYQfI5mDSZ7=H};coj+gmM&yFLe0<9CtMKsY?jmN+!^e(|4-URd zP3@knQaY!t{imub$#;8evhB4RC!V)Hg>)aI!&K*)^XJdc(NR(c{r>$sTGExvpL9Qy zxus=`Q_}7oJ7#v%OpcLchJXIdzkKP?f3CTtXV2<&dzxEYNBjEXl9ShKP82A31~*GQ zz=xh)rlF^Q_3G8IPkCh}*`nf6;ytVUwcOP}FV0e%tef^Tn6)F#RCcbMnq6jPZH=Cm zRxMV>ySvbxEKcOs-$IYYUzL?s<&WtaKd3u7I(|3AXT_Xx;yH4pyt~_Hb8S&xUS5so z)ZxQ}jft8;^d}@7dhh1vucaCn5ajWR`>3c=Q&R4@xR`voy33KR96ReHtUAA%PTAYe19Q4Gb?LiVj=)HaN`&4 z##*G9y-Bgx`S;pGgM;*fCQ@!Qy)N6tWM0cgSd^BQUQAHtObw&*^71k%bi)!BTq`5B zwYBxvQdNCiQnLNx$b~`B^T&@Ve0_b@)zy7{w>xs|Tbi4teYcF% z)b?e)$+^9?u{t+5hXr*MkJ`^H+ACjDT#P@PKh2c#?%j{}c8{tTM@mb*ulqCLwtp1) zhkV0&BsQu@ISucV=R1Bph$9dwFgiBI>Hn*`de(P+aYF1`DT$@!h_vStF~K=AJ(uk^ z1P>jGK%RxJH~jsZot~~=?3GtiA{*Rq*O`0K)U@P!1r;Y}oa4Yxq^V|<_(cVU`y7F` z9ob#^cY@0L`~w1rRi-m9l!J^X^rp47NAI_tejI-q8z1=l$H@8yyZVg%IijLc@$ez3 zABRSiI48nlY;3hA60hj7su)32s+1_fB&}GSeZ5Tmc$+38&i}n(Iky0k+W(2 z5~sv5-rIYZy>ZOh+uPgGakjKnzW>&}(aPuCW6lzCgngt6%E}fE@k%SE5)u*!ovf@Z z61k?Prb6O2ugnfIqj?B&a$dZ2DKs)Nh>-6-&*NikZ0wCZCXqu#UO0dL2rutIOPfvh zlP78_yD$22VBsszW+o*)+NVhF$9U4rzqnY2%6ZH=KQ}iwCr3<Xk`SG7Wf3Doi&0WDpFz!><(P`4{Nlr}U6%Ys}95{IJ(&fwVwUbuvV7qC! zm3xyCGcq!E?%a9f#*O1|Xh`A`5<(*)lG4&*!^20$#vTzo5V8si3U}^^$dCRCJC5Q( zPf!2R{Q%W6|CQp=mb6$uzg;Hg@e*znQ^85D> zwr`*$-Mo3|;6a703nnIP+ZWW;_j4+yQhkh%_ahuTabnV{T}@qmdu<}kdwr>4Y(f94 z1(Nj7*uwhqbYx^?XosGm;l$V&5ltjW?nT4-x;D;ovD<;BeBhx#;H?@YZG8*<&2#GN ztYUVZC=-Sy7c@2NT3W=oxJujFB8=uZMMN&k$;Bm~pC%K|l6vt=T~~LxzdY!;ZYqn2 z^-IJ^G0jAxW~?|1)&1`r$GLWs?mJ87y|s}i*+_-QqbAVM9FlT#u(lr8-M(dJ_97;x zdu@^al<4dw()$e!3G5Qiqh$fqNVM7I<>mQ#W@!)SD_7`?4>7MzYk$i%ML?Zp|D)@v z=w9|T?LO)L@n0Hm-n^0V*=Sw6LwbL9zD~BHqQbP$t)aR3vZ5kMiHV`1p@G3K*1r^L zhUaZmSZpz+rMOY*Po8F4VrOi@>2H4H#_VlX#M#=j=~IN7y1MYtP~7ZkYZJ4a zgOZ2D9j+P~v9LM&ziFXcSY9siSR4=K)daM;D|xu8(y8~`JvE;B#fg^Dl3Q|FBYK@j ze_UAUuNb^vi}bR1{`~oa2M;VPEbwLM!t?ma+qZAe2tPt0;uSm2&reH3^Zk|#aLUT} zp^*{I7^&6d?O(OE**Q7Wqg0M#Z80yV0I85ZhS@gf)zn^whnIM*W?-RGQ>UuK1@-yq z`;TPD>%XlhWSxskO(mi>ef>iLWqA&Ley?Ba`S{3Kn^eX~ zW*j+))S;0_4>v)v=q^S(T$=1yIjNEI`SU;2>EAUqg2wrZRB!S{QzkjP0W?V#K$@7VcwUn1XV6pTZsf|YC@_&Y1DJm+8kLQvfo#`vnIVK_`M6eGH z3tL1(L$b||Bx6H3guIMTj4?|TS=%Wol>-?NjCOvWW7q=j;&t$n-l87Cf;f`WouC3qhNh3bV1 zWw(ZWS7z>U1R|>`$jQgX#)gK6v%_@!IQaSb&CShc;EjEqbS5s0h;2XOdz zc6Hr6&9n+ImX(?sTxH(>-nFZSJF(W15n0J_v(VMv)kf#&%K zWIJnb?js|cnVA{=LDN(0-O<__$UZSTs>Mf}!Q5D1PpGrN%JT9CXe3gzNxk-rAo1hS z*4Ey)e?O3!if9I!WH94NE>Y2?WM3Csh>apuB#I}dGdP@ zyGyB*91-8pyf-Ys=_FXv%?ekq>~w~gEnA9zlka{6|6XJ^pN z>iRmWlPrc)6B83fMRQcRl|@0*VoWUw!{qOAr-K=jcpfGuCL~~~X4uP@5BDANBba?{ zL%8c)xdLb;ASf7)G(LE+tfP0J|2B(Yv6hYwqFwRT*N=IPij7%DO&|SZNova9d zvT(B^R>sQ8T9wsF91}I}$03$che|LUsfWJ zJXPlYFRuGxmX4n{v{6oIFeu~_5D++VqGt2)moHxm3#H`G>F8j0>Fqf%G#@$A938vk zu4tcH#(xr26qkqyr~jz42k=zT2@Gt9_K~jrJs(T}41DqI+1Z*iC%Q>v=ew59>=>2u z8a~DN1hrT+()iM)`|Xv@RoXkU9BZ9IpFgJoBC26P_jvu}$&FZ-OxP0f%9l*8K9Aq{w+z_txbQ&@1roVq*>_60%Vu}@CTP({ugdaI` z<_!M3aaKb^Lymaul)a*(^RK6*jZcKEP=hZ*p^A_kvOBV}dMk#D%&TyKKx<%<_DULjr&e=>bDM6pAK!57y4 zo;`9m%@3cyk(r(S3dD_pNb0qgmX-mg?A|_l2iy@24b7fCd%S7~8ecj?*02&r8uNIIE`Zz&vnATwFD64`RR{KO0J{QgX6$jEDe=gKl%$1_2P7w?DLJLVdS}9@!D~0RYHO?^A z6M}+*M~{BDrAI5rXxQ0o2a@KHz>1w;Z?_Yek4Eia4^gkEw z+RF|pdtO!b)5njDjEuc8=e^7ZPF(@&!6zZcKzQVOGZE`}XTGC?m#WK=TypM~!_xXUx>C>5`FHpaK&{1JY5!V}M z5kQwNT}sfO7`!*FfK9r2^XLP4+|76OKUgg+&fw5l6bJKcw5}ETZ@N3#cEA7l@gpX% zBS#)+T7c*D8XialV8!2y=cv?#Yfn(vO?+l^jGiAYDceub)xRr9GIe2xy#hfIDI_y; z{Ma#I6m&ACHVxY*68~m+?Oh=<+QaARNNLH`Jr_Gx=ABTBCA_2wWyeg=o9AC-=Oii(PwYq7GnMxm73Ijb&f(Y!KX|aXuz-4i>)*eB4*x8#UVZ!F!(WMsX##fXHd#b`yqP4CwF3fv9UiXo^JjW` zI_54c&A0WF*zr@ui}}p$!7ta!97L#`V^PBJNw_*YJ27QaJkZwDTLGW(;>Cdsu6X<$ zp7`xsm|S5+1H+o+$>Q5#*B*euj~ftx5p$BrMrdD=ipY0m@s z^XlsF8>~?5%=Ngqxf5{V*SL_r2??jJe%pZ}&B_`rV4{Av#OgFtt@+&ie9+^^h^xvH zbK@&uJP`*Nd0m-_fyc}Y?(6vJ(D3jI^-8~gLf`3_nyl}hZ(07`=YV!G+xy^?1+sF* zzpkq4dkFq*71JZsWz@v{{Cs56R&vk2Vbg`%`$!YszU7dWl@%1E9vPvf*pqWYJ4r{_ zo`Hcu_sW%@ZMpa%RKbXdL+)EnAuKcwYb6q2o|#sCvpsz|MMqb6WMm}q-Md~<=ZtQ_ z!-tzne0`;2E*KlLiv1l$zX6<`m?+bFBNLaDL~crB9(UG+22t%S!77qN-G6*nNR+m& zF1wVQ(3!^+rnD=M2@Y`p<{QnYQZ}3IyRq3bgzUdJ6p?PIu=;w>?1{5YQ@ z8#O!VDYISGCgZ7Cx|TTRUdkUaqyRm8gK^~vj` z)NK4K{@(M;(bArx@}pB-1-sOAc$-^V5)%_G@o`Ro4BGBXlXL2^sk3k9Ox7wKy#YbtMc1nws{2c&LvUE8OzFjb|RlgI2De>f&# zIUot7r_WNy=#sHT*3{P3)q&-;e<*klf!vwEcl2ly{=w(Zo!G66W#;Yjnjq;-a*s41 z&bh$~09~}@VhM!q#rbDfJ3H$(U4b|2O`Etu?x10!wPA>CqYsUZH3cYqQ!s?0g{C}1 zckcp;k#a8~)3UJ#0|>tt`7?$+0)jI^I>+cjgby+>v|!Uthzy!?b939;PR4AJL^nM0 z*ji=@%xL?Eq^hi}M2C(#cn*1s5pD=EMnpuQ4&(-~Q2!Zr5J&1_Kib>d-Exz% zvqftK4FsR>Do*q4(=XP!&M_ z0fi6fSLB{jxp0Bf)u{KY0XSXF(`AdCYCK;vGihT7b0vZ+w9vTwzNi=*cY%Gx?yh8t zoj!e9NXY8sIGZz5F-dNk-@<~kl$n;i{I1wl^Pj=YMyR8`>(f*iUsd1Fgm>uC4oYMPT;G#bB%?N`de2QtHbruRD(s87ksC=a~gkRAJfkRRk>WMXoei1XY{AGC<5 z24xHGPgp`CKRvwx@>Mpoel_!kX%*=Mll2C)k zz^tN%dI$dC6xGb20DwtG$4=J@R1rB9qdLs_xg$GW)dzge7|lNm4+o){gLTWyWD&J_ zotJlJLvOOFwUyW+5R7OdFJJoeQgZkMWTU?V9aag5Be5Ad+Aq|PE#LurO~mH}r(^&v z7*AW(YYFtI*WJ4cHU}w(3svnfFR!J!dG8fQsj~{Yx(p0^F~FdD)>E`4$;dSU2~5wvIhAU{OHm5=awjdku_J4`J47= zQ&?u)31M;}7x)U#iu?vN$6DZnu+J!%0L6W|&YiiAV6Ua4f3saNHDzaKM;3XqxLcT; zf6?OyAA7IHp%vfT-gtD+r2KpBS)qoy8f1y0lG0vkwkHFB`pN=ASk4^yX~vN{#adXu zJ6H-Osm(^Tm;~Q8bL1_`UTP|pv4l5~DUHdBiH?4nwnyrhv4X<&(fT-aYJ~tQR+P?= z`m}mZpfI21DOM`U(9qDJpdcD~fcuIgesOV}#avgVY)yakIq=a^*d<{aTH9E4LOH#D zJplzFJ^f^x-YM%Qz8g1&V${b&7z1yMM$zGoq5h!ovLgPm~j?Dl7M~h}Zx4@dJt7)Z~mz z)lwN7!dQX!0A>OgHr(3!ShNO45X9yN7$>NCx3I^JH)#pCNqiI)e}D*L-1iW(7~9W> zhnSeQdT+6LX`+T2d_|5Q3p>WeCG61qZFZnypzVlkZA3_}YC7uN@^p`ivNA+IM{yQl zyg~{lqg_4e2nj%RsbZ#(tPhQ2c$5U?r==~WE3*T>-wqXGHma(sTDc8b7hstIq!ozc z)29#b-B1vlbA7_kJ)<}A@1Knyhr=Y9DFYZL+Ktz5*pCxVoH!xvrbg%YKQDmy+Cp=( zE_R^eDRYi_)e9_9nfJ|-qrAK$?OC@l>I2pw)xk8dv9WpSS7e2g#G{si5c1jDa0gyC zHjaM$_!pvfR)qYyrKw6{BX+c>$TJ|)2UHa6<>zk2xaXKVU(Vr9DV>*aKoYhbw< zc)Wmz4~s!eL7>1gpobzl1}jgGcCYRP51*NNI%6V4mB@p!a6!zh=Ml7flyY+qRzuT9GjpOiNDo#J6GfVr0DEgobhh&`;Ny-@Hj4O1e`XGvHAqJ9-v|0U4R% zxVUSGVPeGy4u*2HL1l3LYet4VaHWDmS!t=YwKdw1axlxI4$~)3pT^Z4bT}>`@RQ~y z$`A_MmoGD@$6#M@sXS#`WbJIq1Seb*DJE!ANVb3f=E`gWwB$32?tnxn9w< zQG8ff!i#;kWdsE^L2;tufKiV*ee(~BVu2vT=GN{8U`Xifq$DJePi?`ugOmL-?#h7S zg%w$ar2`#dm}9pI9YE5!kMb_QG02#Z4J3#`=s>r`?omjV5M{3s;yB@->q5?!^mwPj^x zH8m*};c311%K8+QmHT;KV-2ofA9!?-x4pG>AN(7S-RkM^nNS-ct@waT$I7BI6ciK$ z1zivfIftwV$w_o-Ff$)Ndh{kxo6p9|^q9;2w|i+wh?6}SQ#Q7kmoL$?hyMMOg4hg_ zdM^3SK*4@Rq|lW#ldh&F=hW9UZ1c9$5)R=Xa4oT!rO9 z#$&-sQPCfj3QGoI_S#iZtEc5=P^zUo7Df@)K!i>swOtuEs=wXa?I~d#_}Nz$wefev zDWGF)F2PQt~-1-S#;z`X-Ioev%hW1^>Dg8GM8Lba~L{INLRJn-}BM8920+1X5(cIJm` zwm0VMV4nzPIrAsd(4~YKpH%(o1d?WMcGl6=)qb0~K!k8ZI09dfI_F?u@FqIC3&9S* z52gBWZzOB3bsK5LjvT-FxGkb2NFa`W@sJ37j=j@PpS zB7msH+(uwv074p^oGfyi?T=w)1+8OcHHwCUiiZ@K9v)s|70f2_2t$=c$Ch!M;W&D< z3aA)XgZYuV=~=2j$R7O4H1GEN;$k0IQe^Q!c+$58d&txPq2L+SCeP(^+qe38iNaat%- zuLO)KjNiUZfGr2*JJl%f#hW*<061){IBsKPQIMAh)psSuAj@e)<9o;^CJJ;)pd=tKqBI*25ODwg?$bQGzC+P1xij$>wgptz z;@d;N5TF>j$Yl=M_Y`-bl;d$RFj>I8 zZ)8{)mZlcD3FLXgAhWWzHdS|jm9X$3*^H^s1EU9Za=@rWS|wmMfwM~LqS zW*Q>YhHIlGfpTu1ZpV*dzxQ9Xiv4Dmj;TK~BH~dj#wm6Etj3; zw_+iYA~6x=C@eWPZDw|ML@&{l%qV0$7FO0owTM3@zT3nU=qg}{ug}h`lv>X;F(GjH z6Y1Qc-oC!s_3097rqg^vLSG7~4UCO3A3&gb^ZK>hcvBLVRsFTl&iH!vOM?8|1bMU} zSihhT>VLWV9YKno0@F&tVqnqizqC)EpcH?2@Sq$L&gz{25cp5GLHuuSF88diu6nhd zpjP7vEjJ_n9>Vuz8(ZR+957+9$XxdF+JI2K$GsE8fT!m=V%BrwZwfdvxF_fa8{`s? z96tQnDDQS##tn8EuWxBc0sL+Vks%!^WQVc&t3?fpX#@5Ly$sstvKX{Ota znzF#d#43y~A}zz7)N%~e&OnGPVw4S7s`2KS6jgvi%mv&eYJ<;gzfv7fk_g6n*t1Zg z&zYL`R8`$Xy~AuB89X#FaQ(&&r8q5OQ5tVLs@ED7@HfJ;rxml}{dD$4io-^(8E zk3@+^MJ*6C2o4N{Op*(M6hE_T_ikRb*Y)aqcNJZU<-?i+bChh%Rbx|aY;7SUOCZXz z&UO-4?Dr`a6&9k%*>x9I5$BoeY6R6&Lg@uJkahDnatguzN}M^9{_Fr#T|YFhFCQ$Uf!lGJVfiaO)ucmF;Vc8_D{ZK0G(VK#`7 z_M~E!$h52k_$q+Lh57l8JSSdu*XpZ6h$oB$X(mN$2&7rZ zx}KBQuJy?jc{pI^LXRlhe2h;MOtXV`3L$v}o>7n#;7>w4m*(d39r{YsuUGs{HKsg% zAnQ`B%=Sf70Wu*&!wxtVVV!O5=+M>CnQ^Q`sOx2zKPo6#2aM@uYmoh1tfvea{0XDu zNG&S{A!g>tsX(QUET&H!DA9F|jiDhqZUzW@*f=l)U-_(e@;_*uVZ#ISG_lxfYyX>^ zY)LZ()%e3)7<~ifGt;Uee)nD~NHx>#S(Ka$*a{4-?d=Az5ALC)e>=QK2>V)TE=);5 zfz7Mx;_?Swk4T}B$C$yY9tY|KvnZP3U{$E=R42wUcgzK_jpaFwr0S)|Lo7q2;C>@T zZ6)02%)Pt{F?c}k%}Y+>2@~8}F4=~~Z~}dQMRH6A-n?5-9q~W~>sO>Pz(7?zecBnd zd~0h9ehyFz7s3TDYiWH8HN^NJX48rr4tVwqy!zOY3$GAt#jxC9h*aZg?C4-#c9cf$ zbQgIdeE=(vBc33cut1g^i^SdyGX8c?PRx#BAGNK6}(A09g%}!IdA|B0o-S6Kd)Z^f+#RhgZTDzZqe=L*QJ|)diNtj3@;jNnHH3 ze4LwyM=+Z-6X(kpFK(j%0p)=30HN~G-+u%39n>9zfYHkEpSFFZ1L)Q|$FcyTkYDhs zojNrSixl9!!oz(LV)ikgKEYqmfFc4W4_HkAWV+e<-}QG5R)|qF)4zZI7{KDo_PewX z7Un#d>Jana`yA-`^=4`)sdo0GwiSVSXYse(kWsj7l%jWx!_ zx-wbt6O0MmHL!ePaD(6Lu<4Tf(!Vxzap0A?WZ7G;qq7?iBJBEIP3 zdLX|#nbV`DrUvc+```w^{qW&K1k>-RGel1|=z4I>7|)f+Y7Vau zg36i1>{udex-qUi+|T?$GnS2s>G3k2X9y+C3FQ;OsJ5mC*kw|S0^_HsT_-WtVq$^` z!lI(xaO%6cxoK!n$&Vuc01Eb#k*#1zzT@l+)(S>i1&yRNYwguNniC~1lT7T(ZSD9# zG`np0jCbyf^+6gU>;TjqK*wPdz!spZBFGxY7NE+pv&RCj5w#3SNl&a8`WNwW0f9g2 ze7b*MK~?ovwr$6Z55O}_1h;Ps%b$ZM_PgI6lyf|GkJ>kYO=u!d1pfgE&uAQw=Y#Zu z)yFcyS=xb?1xNX8O~lg_>U)GW_y>UydM+nlnQToT0Nh-WnyyzFj@GclZlK^q!}cx{ ziy06U2$2*8g>_m~l!=jXWo->0lu2Y{1&H|&$P@IOo)X{bzP@zK9jIo>#-iV-zL288G<4H5eiY zbMG?jR7kBN*u-pXK1W38>*&z3`9bL_29))$NBAvGbs6gDETArFzBxSxZh?%G&HjhW zR41&)+4eobPIu71<$_z7#2tErStT8+ZCaM0^&pmlF=kWpQz#X2$Zn%z;4gu=3%u7| z(2~)Bh6e}LUJJ=xzAS>X0^Qwgf?85QE^~9YQAE@1ddy;NhgMB%THWvZy;T5xh>E!e zUIBIEj<-FD95IgpA^o1nduA(+8qq(Nh|$G<5xIwvx>#xoipN;*Cr`Y#x4aGa?4{OH z&J4)RTtK~oM2(O7)g!%}dX~s&VqgVdIzF`<2Vs!ph>>M2Or?gr2diWx01kq6mX7(zY00(TM^g{JOhyw-4O= zsnegLA5ybV5uM#{pfzDvbW;rOV2T4?gdl-Vx{-!X>*?v)(cVskGH9ZOg*d(7`lJ;Ucp{f! z0VBv$G6*P=JrDne3WAeWHUInb0yxyOGSj!a#NbRv zQpE-T+8c4KHOWNw+P+)L|Jjo#zoFrQ@dd}weC7N1-7je--z6oT0dNFdpLM;{+)Wn< z0{u-y1bOdS;7YKWWSpRp5hWQ#@VI*X2&8elaY0|d?e5*X2wS=uGQawU1`s!3z;WoN zjA0(tj+u#R1{L)e9l9*2y(X!ne$zqbOA{@c@KePu;6t&XxeM0Elf0xdq0h;GG}J8u zk@Yn@o4)n132-L9@^q{p1#k)`{DN*;SI3)dN(|{@i6(2sy=&91 z!2~XbS?w!VJ~UW;T#ZQwzqitolacY_)hlqojbgkJ5xmkJd;`Xm}V%&6fG?>bJF4Y}a@Mwk<2pFHoFc=Z?Cj8WwtSo4dIU26xNvHw)4sHu>*0^r{=3bumxlQ*AGa1LG@&p>Y1Mey=>paq!P-l=bFoL^kT*%ac5w8kiKS%3cp z+R1--r2^z)X$X+qkA=s=<|e>}*|ew0VhUMP(0 zXiv#bW>ts54x;e(o!?_D1(sJ8Qvxh%KoWRX!{i$-qulc=<8A}Rolw#tJ(_4~y-iN8 zHcKbS6HhjbQWeOXn8XNHJ2qII-Z`?{^oEsHtH&4i@rR*jaM-J?FO$v<=-vbY4u%9@ z>kEPh$DiEnLvC1F9wZ?azYH#=_Al2Ikd^;sJTa1=72UYQXNx%u#}}3CKS2xAov4>` z&d-Z0j|d@n0Bk`zmxrW9zVch8hOQn@nmU~rA1^O-p>dw4azl!nTfxYvFeUU_U+Duh z`R(N%Ut-~oi7CF>_yGuTwv|mJHXjXj@~C8So-{2#%-Ed5_>+XXFD$V zQ*rvPr4BX^YPiv|*xnP4S8zza1RD}N!@)^o>3B4~1@;;^y*m!2T*+g=* zx&4bJJ}BTET3wwzdIr`2SaL}EO@7MtzCW4eZdVZ{J}G~@IZ>FuUmt-5;`aKIEv$qn z?PM~CpqO~+x6p<#j<5OTYdi}-i|037Zi^JU=J)E=->1xCzz#FEHrV(#g7>oLHe6n@ z7Ul%_-OYjU1+pqt*A4vC7C(>EqUfH zOj9VLszVVe$y-t6b)Mn@5TSY!6f_X?NY}{d-}JOEhH5+?PN(h6(R=oM1iA#sO@u*% zZ{jD{(+}LpO`D{WKOH}BTj$wvR6sxj`iASa0)u+AgovI2S!F(8WccH0)qd9>m)6u zE=@U9!}rc;$)!HT)7dOlaqsS6yhE7 zZ&fC7AQH|u7+21KjYyrg2FAdIb)1iHbS*Vs{@Lo8DVE;iW*2zL!Czi;uW*J>6MLkA1a!LXO(g5yk_{;$<|T%9Yf z3RTWODeH5H)x?=DMKU6$75oISsa#xKr#!IjP46S1keu%9uyd8 z)0VM^S{+tGXls@5Nenyur9X-z8T%fSW~Kx zs}a`yroDYnisklp7LV}%ya4Dyvk`iAq zOz7M>wjCC>wp|Shy<_!gOC)l=B01P5a=+eUiuU>E?p}9RP7GF5XjVlJ>>c#MBCV!j zF{Pq^*4IDV5G6@KiGm`B!3TV-aZd--I*h(B2Q(}i-=RH|DGmtD&3zpc^~V9;Q}Uxd zzS~MDivGU`KTeOpf?nTPq+f%^J%om2D{; zAuf$-41x%>9?=;G*8=8`5LQXJG>!-e03}@N)Wf+V$=ieHx)UivuG``eDFDQ04(JPm zBO?Q0CqTBOXkMLDih2Qi(HFhX5J*Ak_Bpsktqul(j=%^abn+zh(Xk}C6kxpYXV3KV zoo}|d4&h%~Tjygkt1Kz@-5g~Z|Ff3Ci^uF}sAa~Ed+$kz)ZLS#~UBffiM&_)e4CW3J zo4D#Rz(NL`t)!>V2Ccg_mF>DG9*rMF3=Y+D_)-eFx-LWThind05tv_`Vc|b|bPULk zEbhk-MT!SFUI?o=BRe~!!xi)a7+#`w;GYw@Lr`V;`PMgYf?QZa(E(<`7NSbJ?eECQ z5Qe(}EmctO%T+KGn7`dF-UD3=g8+mwbnvcR$ArzJie#Hx>(ihtfKXv2f*Ozi*8chh z!QmqQ2mlr*AJ`tO1J5u$T>{TRw5q=Nl{P&Cc!XI57)zwYW#uwZC?Hyq&nEa&y&Sf{ z4$N?l4|$Tx2)xBI2cYNO7ew-R|Ri95$0 z$fu*m(a~Yrp_m>}R#J)vxr+|El6@P2Gx+>4IXMPX4LIi6B%G}P?Qql*BJB3?+TIlE zlYo$N_elW`&WMYnxIh35Qcl3(RP;0F|Dcr_;aco101<9!`47%oV(!P@_pdA9WVn-f z6edGhU6`IeWEj1ku7~3S;5xphryqjjbBqh{W+u`$OHm1xS%pcMCv*5lfv}P(QDoog*d<+X*CL!I<5ENg0{rVNh`96QP zG3=mb7Tp)}5XGugfgU#|?X@yPJUo}5FJO>)4#l{+nT`{N-YiIi=rL%2T1idx$t+p2 zwm99^1ttI{L3}GFQfJTvfIxl1#VLYu@$tK2>mXxcwJ^3Ir^w>q^PvyAas4_RoCA}S zn-%Q7_*QIEpJ5q}b3J1y)$OUgDumqxl?XEjabAK45k)QZX~-@I@C}H`^_7)p$+gZ8 zK7JepX@}OoG~FY(^5~fKi&&K3C>ihe`uchhpBTQ8z@}N&VX%Jn8$2|}X2T^Rl|9{( z#_l>?#a%aY(Z!37mW1^H8=DVotVp02$>;AhAkN`#z~V?s#WM?n4EhyqzIZSAYkt_H*CtF2Z$sZ;NeJ%Be@^m zhH>)r>3{g{t(!FRm|nP*pM2wWyakbbu=6h32XYf-Y-;rs77K0#{5k#+SafdgvZf|l zO?voc!RR4susj&1QQs#uIrT3lXeZ%!_<6{r<>lqMi$^3R-u$Zu+5Ue&^Ol;>IEE8u z=+c;>q?A8-{of4Ih15A1Ls1eSYJV=USI9vOfcb^03g!VKQ|PS&Xphe)0}&AjG;>3I z84nIOk1Sc;x;0>wgkB^jri+8`V4^;MezL3@Lxxw*pc%j(j|ud&h)9(ueNNcnrcRv* znEVOEGxf`6w^$`eLaToN`h|BVl-)-Y%>aRmW4eFhLOQQVz^GAmlSrgs3LLb<3kSvUjEqnHTRF5ggcuy85J2(Qdf7IIrZwB?Sg1xIp~GfEMNS@Z z`sM-lWiQxSiSjlMg@e4oj2HusR900zzs`e`J!{L; znzc`#!@}QeL=`|h1rKfi!v`Gn!iuxZ{D9l`rl8HACrkWlYdJC*@k;9mH=+zcXX4c=e@83rGU^u|eL)%ROq zZzor+jO7SF5SX=?sz8NpbzkcTnFvXY$nV7ZZXJD1=j^ z3>+u)Gv2Kqo6RK*Ri|*5SYw8%X+@b%tg|vsVNjB`*eza$ci(JU#2eMWeX_Xqobo(uS7|^^;Kwa z_&b~jVUch?x8s)7Qt3t%7*=NpL`3%6^9AXio$P>zo72AAl;q^A*uUj}ZDq@kReXH5 zG-WsOZ!=L*i6$%8k(9;Z19CHKSF8;ulA!ov#3B}4FhF=LG{5mkTS7FMqG!vbp_WtY zJl>lCdKY#F7stPzg4b+pI^#^=>z;vY4WWTE7;Y+YUN{5gg=as0JQ=mL7!4TuQfJQX zes0mou9RDCXnmO?l~JCg#=0;5x1R9EA}^s$c;&eI<0ND=czDa2H{}%x4xX66LBW7- z!|O!49vxw6AAnOOJtO1IDa+uXplZB^1c0sX`Uh2pzSx9yiy@+gg1W#eCFL>+-a&-r zN5aL1hMt12)b6poWO#NrHx9mlffNuR?tktSWM{nhrhQG(>$_Px2+tLi*XqhjG+)5L zY{_8ZYo-3^QK0KV4WM47!m}6TTH2e!Fg${}V|H;7W0=R>AbAh(l{+VGy=GZyNys=w zBR3%vVaxV%f>XU-_?ET@@Qf&>qdFk03J`4I7^>=8Sv{^js=tpNxF|?;D4@n5w$NtM zQc@P@=Obl(eZ*Klijl^Xal%@F)dyz-9O3P>wR={y@( zY0vC{fC`Y+D;@S5_(lj`U-drYU^RSR&J|p0tTj9m&)-eeJ}UksSuC-4Zveg#(CjQ~ zE&>iJJG3K2W`Fg#+{fmbJj|?$Dk|{cZ2x$4u**Xw9`E)6ux5duKdoeo=qSKf!2`4E z0~0=rSNJ4mnO?zX(*dJD_P3#8BL{lw>w6K!!^1z95620-OIfaOZocE{DhvJ{_l=r^ zgC^Tsn;?osfSK$h%-~}JzJxgLvpN(GCzR`ihY;2uatFn}eVwQr5M%z0jS<<%sa!)h z!QXW>@+f9l5BdWK+99Kfi6nAis>A!bmO%Al(IpX6C`MJIRCE6%bRUKT z2X4c>GsP%E;+DKByEG-0`smaw`-;MWRDb5deTifgd}NhzmkYCKL+ti^R+-Fhcd||C z$m(i0=;&&<%Q3u_Jb5K0o2`rDk3#w)ec@XQGK$-Qoy+^lIT<2)*z3YKv<2v{9q66k zy00r7F%WT$C!$WOPO9j5dbfza$TFLo>0*z=_=^fqKHAQ!2pSvlKW>JWM!m}31}M`1K24|07;BX42)I zJ0#YJ^o@}Ugpo?NsXv?;ZL~v{Ie-tFr8$I}Bpb%92 ziXT7rO}!_H-c-7~^Ln3{pED~1T)cTmH8_yA8dTV&tqdz^ZinzSSQ&i5yOBa<)~rzX zf!9$`nEv$NGl2LB=yl{k6c#;(CsG;w zR}}7r*}iagp;5EPa-iT zW46K+N(85MkdN$4RbZP(E|rRT4r_d7?(N1mp~esajg~k@m%_iL#sLC)W2(=9!}`f#HKS%@k@YrdX{^ zUH^v97*{Y#LY~8f3y|T3{%`8m_h5aj-1}qI&>U!f+yfWhf!5XK4ZWF?o}cm0tK=Q{ zBnWXtw+R{w3k!>h*K9d{HD0-S500Dd@#Hk0mA<_K;gVQ5qDeAZA}qT2!?l;Nq+oYC z(JRqhV6Xv7S+$JyUb+?>^!$(_IVa{m?AlMjQCRw9*Z+M5(u?Ek=1bH$2Dqv&8MHnk zyPXH|Yj4el0;}SA-GgaxrB2~Jds|UbORd)-_q({d`o4BAB?DrHdg}p40g~gO{40L_ zxlX6LvG%TE;Rt>Kfhp*Z=u#uM^G-jneSLCZs~~dk==oz|JiNS(8;B#wX;G+w$|@=o zz3#T4mUDW1Jkf@K{Zd78;+ZhkU)AfW*^>{G=NR$TOtn#YKAZXX?#bcpAdl&e1J-B$ z;rc*)4I0kgK+V8mWmuBog?o)90HT@=+HpVi!-t1#3~1{!=S)_s zBJOZk#zBOO%M9-WJjkPVHhT5rkuX(gARs-7#x-4CF;KX$@q&-pXX9(34*xj9Z>5Y{ z7Kg3S9AKPLiw4$cO3HVNWgacYcELwPWZ{uX!Vxy`JOH)&t~JIwZwrt#Y=|DGDFPHU}5vq5EbC2SY&+)Gcx}C zSH%VChw|C{ooNRn1N?U^8Wqn;~hay=g<)`I_fvrx`!e*eZse1+JFennN`8FG_LT}@32>4WWs=?4uQ zDj_aNXY5qnK}fJSIk92GDkB%zzwdcmT9u7p!1g&39nvR2cvF4>s+0CoJJ8JoFHR3|@aD ze-$Is*&Py4PCOf_`aff&vA*8%CM9!KGp(2d9ZQ_Pu{!{`02=A|9J<4BxL-P9~F* z+)L*@L>ng1DeF9H9;4kImzGH>9H%4TMu8=QG0@l)j z2cEt=0T%^VyYKrO_^#s-Tu`J0^Fcj?L%9C{4}-3EqFN9V`D zEMTz(UO#1cgZiT2wm}QH*{CR@Mvvsgs~GRgDE#i}@kLyMQ3D-Tq4esx`r!khVH+<^ z5*?QVB`s;qr-*tSCnjlxYO$uh_Mn*=PKyEq7*)wNgAFu_2ne^~zrT41w$BzT_QXPNoeAkob z2lDtNBO{dnh{T(R6lfTglH!Is3U-zL4mzBiz7}WP&B@Br8KjfBo&Yxj`oYrD5*Jd= zhTWooN2ch`usW(YboAJgK0C*zSJ9s= z;y&pnlC~r1MK9PsND+wjuLD{#9q;leg>;m?1jaBO2T3;349)NJX3o6xUS*c^o>7gT zhCMh+ZpE!UdK8Ado1!=Z`A{yv9xd6A9(67GHjUa_IXWE-3iShw4BL{?&B~{(Gb2A>C+$4*BLqo}$;t6|~r&*Y%$U0`Py3(8Fn$csm8;2^MiizBZ0 zi1lM9rWud*X5haEwBN^?h=h(5(Vv;QdD-swU%uepa;fs(JuM3FW4wBfoEpeo$qP6t ztE2Txnomc}uc@n(8$Um@Yw)}g=}(?SBD%L%tQJLh^|FFh^92A6UW*Jj)eA(3u?_hTUd z^94rIk8O4EV9h=GRT!@z-faH6)PC`zc*{*REdVW;R&GWUVN`uONnX#uKV&bs3f;ja zpFh7%azgcc?%K7Zk3QW@PR=$fCqr-R<~z`1zvtX2WAs)*w232D=3qbR*AMofkGRwC zcfp%SEcjF3baB@%T|WMHvcW(}I_s!E|CZIx5fU;`>#WV_&?Gk}>=1 zjES-xYaZa?{P|bWeL+6Ed+!l_eE(jJhBLsbpERRv_3Qm>x`w0P(B4`-GG4qmn_~mi zCzd^fgNo&VyWH%9I25rVT2{LiWu$NQxFMikP87|COxI zhb=c*NAVB#vIJ67Q;Eb5VFML?>mvz^Y`|=vbMc!2_1iQheh&bM5^k+G5}#c_!B0eF z{R<6usFXN0$uAxKY*ggQt`vG3!k$YeD;T<%?LZfUSsXoPlkDv+5yF@#cT)rh2DKJP z7&Ye-R9?UC|1PhA4p@}V%T}x~SUu8>eqF`j^lpkfXT0NOCu}A9vH7c*7eR{@38%xWD8P{xU zxcu{RaddVndEsXQ#1b?qYU$*2f=$r2yK_eHcQd_*^x&n1HLqPfckbM}(Km>spMBLJxM|l$VL)T-LPQHj1 zZm>#R2a#Si)L#t}R&}=NsI2}*G#8cUcc#MxP4mT*@33*W3So*2tK760MGI}o-4xM% z^0KI#vzphBS=p;WArF;0u&^LV`#Gn)x(92PFT+6^z)xQ2rZ@~qIi?!kzCkv~#s^2k zx24^_d2Yr7!k+CHMK3&&4>b>K6IQrZ_IK~gT^(0;&_p?E*w@CLoP`&GGxF1Ay#ql! zYmK_LzHW?(fbMc2&!^O!H0fn3$!FVbO(<9G%IB=?T*8-mGp}!`jEy;#4siiXb074B zyTgPfCnu{nnHX>}^gD@6X|Sf2i2Mt`K@=TXpX3zJoIdS2qzBkJ@s__<-Z26s`Sxv# z5l6Gecm931ORICvu0nq&Jzj(|c?^%*nf}8==6G>Oc^q0Q=$XoTTRS++FkG;`Y2?u- zcyMvB{3=lDhlD`M^Rpb6na!9j&wljz+jjQE@=y23fpT&JTjXAk(-7&&?=p;n)4;$J zp>>po6;Zs_b+Ljd^IBJz-*qZ_0=^3Exvw%D*y6bX<==lmP}bS5!m}$b6s_9XD{nF~ z{3orV-%|FaaY1x|jNVW2$-tLuXAuTCxLOt-v7`Lj4zX`k)NrlMkc3nLXUmA>94362 z3^stIsnfQvRSh(JunKdO{`>TVmM?qzp#l0z(i(I#OrD(m-5+lUQkS|DlNIk%`w-9` zJeW1AFEMB;PjKqgZr)<(;5|j!=k}JC3voqbW?(A8OGBi`uioz^{CZ6d40X2d9b<7 z{E#G{6A1KHTi zq2*~;KS;;YF3juOcFlovD3xrycxEU(zX0|&sws8~p~_nw4i?W(11~W zX;qi<7ApqmA2W=i=o^;Ve6%VkIeVt!Sg5;h_fEePM3P*|$}xU<*&Ouf)3?T*(*~9$H5GoZ z3U(N&BALdQboi9%cHFT*<(zR$>5v5t+fK|I5u9GM<)(@9l2LuR#jCE|Kpa%EEQn1Q zFoCxmUpD)o*;!5FHKtEbw%)AL*;CB>UOuBvYT>2(wnJoy1w#XT3mfteA_$#-rhMae zmEiP}?>X;E9D6PE05AEm(>-zV5|_(|wI}75HF^$}-uKE?qadwpw?d#{nWDncC+evJ znzejvRb%KviHLPm;wL@hfjxb?zv@?Q=VrT&8~sf~<|ulLbv$I${eN#t!fpHY(d=Q7 zB`SszADknm_tM(YU!v1ssl8#}Gt;~teTwmra%r|L-Ellqb!W|^kdbv7dUz>$OfR(- z_v+bHG1Gs9iw)di0t}Xm5o?=+geyy4qHeR!-g6#P9ItIIG8%MeM~lRPPaPi?ZL#&c z8z!Hnr(^1reL!c7@BLMqkpQ{PZ&>|2+s!GtFVU`U^D0|ggT3d*+y@jDY<^gJ`3qdO zRKI_J>g431x~-*&#;u~>oWDA#jMjCZ6$d0ymlPr)1L5FkW@BX8rPsK5^J$T7=9gup|jZ){t`Ge$hR(15Fl7Up6e$+M8Ck!*hJ| zk&)&jpV!tF+_`gymLHOP_&s82MRDyVR!_=hJiNq5qmvR|%uMWmU?*1~j`-?6t@dp0 zjhudJtj(J@SGWn!F2>|Mk>KSLdtLv&&(pkWzh%#q;9aiVHlA1Xa*4*~q{Kc4zi+CG zP!vg&Uh3%o=(P5jlp%fNuXkwp-fLQ?te@hv2)rmd&X4+}ap%-HZfe8PWxx5zQFL;A z$yW>cFsg%s$A#hu=dCu$3a9)wZ4^AxIWBkC!7f!emV5s*(By*npK&Hj760)vjTQYp zDP`9ZiOBYUa7Ve*qV_*o_499@1t54W)kttuP&mEO?PqXE$TXKp4Cm<3;f@W}ncx&K z^XTP)dQhan<4hkGOYfd9j=0>~x)JYlJ8#@nIksV$r&Strdq|p^uE{`Oq}T@!KIq@2 z?RN?{=KOu7@tyy#T=Sm4$D90Lx&{B=Jl+1um!BYr?V31vm@(?zyVsMnDUyLjUTquQ z_Skmy>?j!tiGcpEPj_!m(}4p*k(?)(cWV2sl|PRf3F*RWNH3%ro))J9lqfXlCbBZ! zZW0mr5c{q?m9}Nn;qq?{|A))*-)CWXQpY612=A2-NUCb>5qpCDzabZsFqk{nwK}Dt zDtcKVL=Uovar`ZtbVCV6B^n<+d(H4YaNrN?6`r%U#$xNsQTlsa=PV=+&nf$X0%%1& zt?Q0yfd^nA@zzTeV}d1%h12ZH81~}ZhYh1Zx3P0x7x8Sui7)W0bmv+9PbZ`g$K%I` zy&<|SHNmNZsap7qP*Kg}Vg7WK)oYAPQ&UZ;m3E_3i`g?%&dgdOq^lAVR_p%Lh1pMf zPL`FkGyTIR(1mDsMjPbj3R*j~U$xB#rk4I?_WD%m^(E~uS^S~s%HMz81zYO$`)*tz zT=eM&q7);W11P+@`O|DbW{6T3;N!tk>u4FFTH^mtlUp2P0<-d+4mAn|Zr+gjH?fI!Y zNI@^%b6db%0*=g)YiCL*f=tT(6~7*u!|O1h%mm4;pnsrh(qg!3Lv3^V)Zr^2ds#*X zuH)!(F^VyfOv8?htUadW+WH)2ruHD)-pK_ExSRhYG-o_U$ZvAj;&0obCO;sG*r7>T zTF7mqAx|MV9XAx($rgcbJ(FcxIRgI2ay>{(&H2v;NcUvC^w5wBo z+xofJA3)Yf>Rf*`w%xWnmrsq+Ic9wv3NOl3lz{edpI&VxEYGVRm9lz`JKYHi*@347 z1gQctua8)TE^@Vb6iNC@AUiUC4{EcW3wP`l!Ap>O=v)+XqQZ*%@c$W zW!AaiezLMVG8B}9)29x8fr!9Xgfq?bG&M2~)+hK@xf9(o)10f!v}Z*IrU+HkX`UQH z+<@Cv3GrIFiTO(d^_3`tLt?Ml=T8#rQ}tTL&V2WB$&J=0@_pN5#+`GKx*5HBR8^Di zbK3j&y>6e4`2xa`vVbg*ytUL0=RF!#n^r1_Hr+JKTjCGP1@uRS!K1v)!-K&^9-2lY z{-jg$4Gi8~S&e79s%kY4fFJx=X!WWGSblQJeoRPRU0m>bnSgVa=qiw*_%Wvg z{f6r)6D(XvzrjkXqV?mSU&g^Dlv4lV?b~7hekq}$($+QxNXF&y(Sm~`ccMpT!YLI|7B1_xytt+K6L;7d@>x|a?ZQQ)x|*7yUVm!22K~C? z8r>2+G&sGFv^4Q9%%f$87?tA_(7UqLi&B4l>``YUy-x|-vr9wkCbr%-bX^Dnhz;fU zCzFQ;oMUnuV1AihKe}GgY>ZFp-k?3T?ODy#j+fOdJ8kqT;K*$N>hj*|mJCd*M$HjE z-C0E_yRlDSFt$HJcJM|L?M9P+H_a}F8ATaqE!bR^Kg+NG)M?WIas~Ye2zn~?8bSdu zI#Z0>C2r!InWhHVjK+t!Nc7UvyOEsi@$G>OGa80^QC3m+F+O0LyX62MqOg3H&1^fS z&dAD^AzDS5VE^XoaGbemNH<4R2j<K)(>Vi1=|2)mt-@4-49Bxxs_OT*_kv(idL|dYwE?l-DFR<>q8(Z{4=7 z<-KPw*1By<5g$ZJ2qxuLZU94vO9TLTH%0aiYKsLZsn0tYmVfxL8NHj2HDD;HcsE6G zcOHBrQi*PgybS;-+ya1R@_0}(UK5&rYrlTo&KJokXslNXG`wjh3|_H~zKR+t@`IYH zs{d<0X)&A!I)|pw#$@!Es7WaD4j3s1vaSe5UWaL^tX+}^#k9@zU6?5k{B~1$EE;IU z4fJ=r0#dlSX^ne0=F%PsJWkmHi0#U*S*u0e~IEWvr~uh#S9C5QF*gKa!St9+qrwNw5*KFKiZC3D)+8e4O+wEP@ta&nTt z3C7O=7Y9&(x9M(8j#0*MuEkTsmWNm;-R84W9C857AR!R4ZSX~kc3XD)>rW zh4cp>sUQ5}(>KQ2ZE$dS;U3WT>kf|H_mnF1k?4dFCM!3$deSYT8GPu<(SM(L0cYMx zi;u~uz6D(d4jQE0RC;>lXl77x>}vZZ3sW7WdvN5XOY(yT+2MB>H?%!!mr8ZYx*N@Z z?$hV=n`z4;jOe=(`^{=klr!ZdB6aZy>lYHYl?@MVWYmM2_G=RUog&<-wVmBuOQ4+# zD--so7p+g!Z~yhQ-*p`IF>EA0$PO4F5`W&($c7eEDgF1ScJGuGQS?&;~7FVG z*alq$7x(*afCrRSEC!H#jL>8U4az>h0Az9Z%u^O35Ce@r(Lf0XEpa+IV-2=$ov5g% z9EcAf`zH63{kE_Wq|5eWR2c&*l!5o<_R0E09OYD8AOz9NR9-{ACZb=C@~(f^4TsdA=St)IRxn~1Q-0FHZ?1vWMuQ5BB~qQQxCL(7G~ifH`{!=oK5V2fTpU~| z^N4UgD*-<$Dtc111+xP95vow!TyWZR64UCDy=_O=d!TR}xw(lYb9ioS**E4w9-$_| zgn$>In73C+(F~E9q*3KndsY< zU+<2{&K7#N=FNL{O6HtA*1QlR+*EXEY~LhY?WFKs^AYny?w5RjGxp^s6EYWW4-0?; zDFlP;pfrJ&Df}3NLjDUdf5q$!R>NZbojWzt)7uBt#trDA5sBvVVXORnQWID3QUUR89?pjk}H1(1=Zuu0sZLFP~g1f=G*M-iFh+0r=k)m zZE7#myM!L+ZLi*dZjQ0G4h)$@Q_G+%NO;?QdeS1% z*S}W#)51Aw%9H^gj;;ayMR~^fGtJE(85(gA{WXOvZZG)v%_vP5XPXHp+qG!c$n|>2 zUeGZ!rHS6cMf>z7U^64gQv9{*j~k78#iU`?-7_yc5`5rTqV$T=ufUY7OAyV}08+B2JRzCy1}QLyE<&6^tuf(TG4U?|!x-0GIp z9y*=QO%jBGl-R68h-HF-s_G@~kr^(C$u{lh*MOLMasS@AH58zA z3_5Y5@qV9$6jiT-q;wyVtx#vui-w?W`L(t4(a|_KT)f_+eE}!=9aP9GENme;)2@59 zm`(l$A|yZ6+mAn$>1|9=^TpzfMgs2Y0tw+J0}n+1y^riVG_Xd&g~XmWm{J#^+fI-U zZi?q^<_7%(1!b1JU5vP~tNc!ptn8C}SG&yp7d(1+?<)BrqvvYT!L}ftwYatxE_01_ zMEgCyC2220U&i|f$M)jcvz=eAJnG_HT;6prwGH-LSxGk{(C#tXZ2PB&J^Ke~EdLKU z(wDIdEG=8#wYE5;CnILaj9W?G``3#0d_hu1cYq#D`w+L?n&0 zF0Eh}<3HaG^{}LRMBwq)iq}?+>6R_VMn-DnR+D4~QbZ%1McRSF>%58bB$=LV7d_44 z+#X02NE)Y2n=mAK|Gm+3Mk`7tK?2jflpzqAGFdW{f;C2=%41~nUzQH2h*(^|$Y$JX zo{apWD%W-*$Ja(q18ced$z#S;fJW(la}4@lfk|bCsi@a(ZT}Vt2M!Xqj@f4tv<+*~ zpF!F=16YH+8Ok1RiWran=o0c_8kT6Fr{r|3LEg$lBnEsyAE(wl9aH{ng_+qe%%KdU zj3bQB8I7unKFl@`{2?RJiM*4=a$;RrL>fUjl>{5S-CO+aUJq3UN$-=YUZHei-Zn~L zbiG25O0K>=ciudbduCCO=~?d+s`A&2x)(0eU!4RHXy zsjo_|77zfEA92Jc-=Ow{C{1#rg4bcv^4dDvb?c&IV=KtzCtN=9&L4peBAB{-5}p;y zmjfSsh(!TS#N44-2z4*(^CsE(5+VZsM?b%&^&-qX|MU$DJMPbQ#uMK(vp`e&@#6&i z{oriXo&h}+(_f-?KpY|J?!7U!c~a<(l`BJ1Q$1jK($vUJxO1op8peJ=u`EcweXL=g z1=y*pMe;U#zCS#YWZErUC)p{%-_{N|n>!Tk(~C!s_KL1rr}@xzg+KO*^rGAKd3KIV zQ-ZFSGzn!rb+wY$U@ezp3$`QZq{S4$Om@!ri4*g|I?`I_G%@lSS#xWBVrt#Q7i|!d z=_JQBZA+#@=maGl^>O14ijL4rpJ`lRnxXKtM|^uRt=aPWlZp(1yMKU0^65smqjmJj{8lN$Bh}&XP;jDb)#(UmT&$->jJ<0*ZmpWIL!E-?!O^ji-&lg_2?%t8S2uzIQi_GwQ?9bs_o(ufq_Vk-hT}hhV?ltlFf* zMA7ftHIv#m*IkM`cBZr3j~N!RQ~RtcUXN*a6tXch6=B|VjxJ-Xd8fkIR)J8FFu!zg z&*^ub{NC#@2;ULy`me8AjX!U}PI3dHZvM$x2Yp$z#TM9-TT`Vr*acI-~A_>n5(zvm|uCxUSU_uvZh0$ z%;?#lS8=e6jqT(2fW#K1MTC*fj3u*Ff+<#C1}?LWzEN9A>P4RvdE&3e5@Aq^&>=w$ z$xa)0{`^ocv)emQSRY5vPe#PVCLe1uK{}U#zWh*_^%m<5T|~fPBa%y1l}!6WGs5jd z`}bqPfI>l#7Sz|bl%Dp#zTwRgTrDw+r&~>U>)iV76TN)%#z1|`Su>Sr-6rL@c_S*W z-}VwEttssyiz^jz4p^7IQbX;7{{ForB$g+v&(Up}(*)o*L`J6J)#8OcvwpSJ306O3 zm&?yN^Uh+ctd9VE?M<7C!{eP|kA+z4`jI;GAlc)M=;5gt$CiG^I0n^D>EeZ`V)5xG zQ=KPaps$Zs+%XTKjMH2bnj9#M)g-gCvOZK-FO;At`RnSM9`m#Q3y5ge&_$LHP-T+D zLqb3wxnea)1KF%J93Y3p$qe_xb}eRl|EdIi)*iUpP%pX_X2zI+zMu@279)AgTxLrs z%(Hi+>Bn?q$}EW;AG~F39^EpIsm)ntNe5m&O;J=Et5>Z;8nd_b9bbpXgA(zKv90#$ zh}?g2UjLibOG7{Vrxeo^r-bk)d^5(5C@QOH9wdkOZS2Re?mc=m?!3+10K|I;3Cq^I z;5{1mM%F*XXq3sjk{II{`kQ5a*pG}S%Lb+w{U5(+vT0=E0=gs83#bX3syFx{hNXX|_q)I{ABVG(tgwF4iSa->k4joblcE<^%~ z=B_Kn1qrJjbbnrdCj=N#ea+LpLFuRMX8ih^MihsQaz(n>?7y#_Ay+#uY27+rb4YbG zFH&}Ri#kOhd*lpI2i?T6aX;E|B)Q@J{VZL|qA)qYQnw;(bUS-J`=nyo1^wrL{q+Ok zABj=ZwTu}*S+M&ad{i_aT)GDagcO6&S;_BdF^atI*N%!#TW8}rN)bJXeL)fvHNMey z^Sz;Ap}zir^5J`~`#$){f0$11_RE*;tpdjR!`ssjbM?<~KLDE6arGD(QP!m()(A1W?OXY`r+v{|fRjR(mz@@ZN(E>|Bdy?iEf+X$wgu@jo zT{MM}Z}6`uZ&SbC>%m(@ykRGfhWEJsce$E$s8YdDA}c%FmCifJt8JtLSmsjUEL@mD zOCzqb3p}NdS`b>5QNNaS#4j+YI~+wwB#h@XnT<( zFDIA6>;ZBC?mQ<)>bCxhNoFtvYD?utkFA?GpV0OYWaBe9BbybScoK=8Z8!H$$E>xY zC{)q{4acw8fakMrX=Y9i4K+t@4DF1APl9<;)nhBWeqw27X}V5nq5GgzV!=6BCjEA{iV zU?PSEJU96UL2HAp?Fj}b^OtDv!r$RyboAs>Kfiwv(xyM#9?s0JWoFf9*%jH2IkbNr&PqB#hgc)->6#R+K(1B);+dA)6X`<~%7Xo!x< zQBTh_VS0zE#lFkO20i&h;9$MDRX5F4NP30}!=C8=!_#))csgA2kkF%P#r_&RuduKX z+ZKNEU!FWM!0Y?)Wcjubaz`}agHF6Ek&B1Vk>XA*eKINYyuP7wAgble%;gpqDo39{ zQ7j+3bW~rj!+fHX!yg0AMn!qss4Fu4VEDi%LG|5~L=xc2f+kMjN)c;;cyc|lL(nMi z-Q?HyVI3~7Io2hs1r;bUZ*OYwguewcy&kuR*a0z98iusPA|0&0D*SgfGXH_o_*Vh; zvFG-utUdaGdaYVCJ4|TV(HEfN9+4HOcWB9rH*b3@J6JvG;8{vJ*ClbVS_lM>_ujpB z$?ZGc9ce8e>v(gY-b@)m(9_>^K-;(3^?u0Tva!tm|Bry|f5ou;do}-kJ=*_&y7tG@ z;s036SJ?4jb6IpaZEli_{?ikm@FxPE@tT@u`BCl9PqEfYBa%7_I6>E>?=HdhDmeI` zhprYsd3o)=vt)PBOG9($m77)JWZT#OUeUTz|9vT!olZQx7#M~DHr7@G zZMWbb&__&rIn9(pzb|=LgLYRRYf^Wz*&nnC^>VTeG%TXk1f5F)6<*H=zmn|_I&5rz zZ)QtZcFH2JVaFcLAW3w%QjIidW1Ope^a&bMeWg6SSlDGOk2-JL_A-?$TOicOjgu?? zeGKD}jT@>C$C#1oSh5Fx%ys`c&684C~-KWL>Tmkp!1R~ zpjP3I5;?I1`XDq#sCf>{1dCAX&{sy&$J$YA3+?S{-%jaen6j@u1~`fqn)V=UpE18(V0UV9e1E-U;CMQwj!&`=q4sup zkM!&I&#Gkdm3Ei;u480wy1C(_4-xE_maUkHPU5W6({V$L%J=AX3xz zDadFLjF2Mt5xawFgF6T4ib z3okE>pTzo1?4u<_ju|Tt$Ut**a$tb9NT>nYQ!`}iS8k}=BQO+kah9Ongh7kRi!P;C z+VzQ{g%hXUWuy9DPfYCExwGIYrg302p$)gR@E~BJD%P zCbR;RSv4Tny8!SFe1>EI`0U%mLBg+49N-zeH*H5nT;c$qMWgz%QBaqx9xwvGsD%rw zscIaHskuV6J#Om_wH~mR{T|wqlq0p|yc+^CwtWgK?O$IzD&Eh|UL0YhCi(rtUU>|| z45EyEtZ)CSnah&l7KWLgF3Gp>i@S*iof{HuVU#%kRmGN{d3x)qiICaSO>cdiR?*a7 zMXJruD#P+W&*&{Cx16wiYkPH3aHfwSif`M9 ztkg3DOMGd~aUL|m;q8>Bdw1@<4_syukX}T#TjsP9c_B2Z*cZ|-F3z474mlN(1d~n5 z;-cB#p)bjUE0WYCKYjVKlaVXTbS1!$81@m<0je6H&zZX^^62okM9L7kmH!QKzEWR= z838H|h*_;OAW8S`4OLM&WQ`Z0eBIZP;XAJ)J12&=%GNLW;?Se%dwAYBNidbng3)#r3%1Zp}jFnYY3RO0~Sl^scT zH7~DfNH}$OrHZ1ks35KpYCvOU2)-1D|6ZL6X`_50II#ow_VGD#QDs|KwLWlLaIuWR zo~8At&g-zHvLhop!>|%XoA66v6sbfi!UxeF=8~C>avLmOFORrl;FC| z`Ay22*o0?+xvvHXE%(``(fLu*{<9-qbdHohy{qHId%L&pYW}&}LrYtw`~J{wZZle} zLYp^NXZ&=V5$j=5c}+VROERpZ+b>oq=XP#13fCktcA8cIpn1Qws`8anAWj_!h21Hx zBMZhoCyZfM)I*UFaavw=^k^(xjwG&1^1D8Lj8cp9zN(}uIA}C~_&<4I^o0IXm|9m- z@~&=!aK9Cv4bgL&7HSh5{5cJvt+`vJ_N5iqigBaa;^fp%Oeg5${2rwHPh_6v?jMvm znYZ!5LABTJN8qMcNCX@^7EggqxF=F)oR~P0b;sx$iGUL)MjO23lBuYdVjw|}9af$& zhfr>h{SN@LFkl@{os4_iw-jiOb@uisAa5~MkP+dE_u)RM6JQVe_wIcKbXeH0#-T`P%h-8M->@$W1XjmnQ9Go|q;rm@5c|Sif#YMCcUOEt61G^=5id z?loaoz9WZE-)x^e4YZsS6cu$OIPrP#c%n1)a(6}Q>FAvG!wm$VZ{|i_wz`Yf6oX&J z*cmn_kd=sisZ<45J7SDs)C2{EnT1Belm#ljjEqaDfpL4LRHI;_q9aDtBtYN3)?PLh z*GDoHgCo31pV#Ry6$xq;#o&r4qpH~rBlmp6y*Z_u{#ubQ*Ig);EzdPeJ1tEln<*YXP|a!= zkj$^75ReCEFS4r^mxOzSfs(LqCAIYLqWG7F40q;6uTf{JG&>5Mgdz_3dGb9{Kk{7$ z9-Q5RF|*Jvn|e^TZ(k+tO`{Bq2|Pq*>M`TS*6O#0M;uvrr%oxbaZ=Nzdm=4RRxT%% zN*pWGyLZI9z(ho>U@pizYEI5wgP5F59-WSIpkZtd!-ueaG;?2W5}Sj&KPV+oO>j^U zGPuGgG9V4KG~-0}m483|!X~g}L=`mI@$JSf!;?3%*%}vxb@mlK*m19W7%ooLtDJnV z(ufIf<5_EIZJ|MZAUegyP6kKVXoq_-`K01<+_&fN?kSLNu)vNSJ=$~1Na0PGyE;rE z@3c9*VM;?`#TUz5=HcNK;Baf&8v4%*R(|+7xGn16kgq+Eo4EWKLplmd7PV<$TYST= z*tOB9@56N3iJIem|K1{uHHWR&A9(QWty^Xu+Zh<3sORo}+x`C2r{~kICkmgtDOJ&T zpfN3{aHFWue%=*8*6{+3!j;snDH_nEdO zBy)8|8kfmcx7B|%3N);HHZkM)jka>~vU;aQ9qF0)lTOv=pYT(}!i#Ruvm3h!rybi} z=hYn`4an47)~eJeRxQNqtraWV&gv%?Y20GPSVU(#4Pf|$0Fga=*{0)K-gnQr4+pWH ziCdZ|UzQV_ONTyq!SkFpBy_nHzs1oRiOJ38OIwLvTQjuQJq!{)^UfBL-ocMIOTz40 zE6mvOkO#ay&@B9BSCNA6z*$W1qI2LEQ{-H5!a+AvY~OyZopfG}g8x8Rz*TySR>o~( zYEN-h8+A0cv(BsKv=~I@toIhNLaD8b9ooQvw%@Q+kT7_QAhk*7{`rmf)3-fq^$}k2 zbWpv<=Dg0y>81#}O}=$Tb!b*Fx6c7;H z3ruQS+p6TZKP4htqmg0&?~noz3xz&!);>;htq~}k*l<_IUFXE66B)Ap_QMH+2LJ%- zU7ku??`{rFudO;Q6+|WgY6kzUTbJA1{^nk(h1x%TD=k@$A(=)4reS6Nw$B(9Jol3N=bnRY)H zQ#l|CHbY)NI9e`%-m1_ABjrIu%2y+FzTUD`SJ%_MOTx-ZU>^`Kej^PALOXZ_e50ezy?_nqLF!e%2>5zL$6l{%uN=(RFVN>cKet}U?u z6&&#a+*9$kNLW(87Bz@Pbdd`n3pbd93Xeahr)QTrw#9G-wYFo%3=65X0K{Y*T8<40 z+%d8#Mnsvm*b(g(Eee>i9eai$Q@8wq^B8hnu>`U(@M_>P8fW>*L~ADTp1kfRe5@#P zZgw?V6Kr*cOSVIy*EybOd( z!j6}sHoKaTl3LyU9i*R3goSlz!1#|>9t~L?DlC%$hsA}3#ZvPj-6R5ng4V{ndx?f> zYkRQGLdQL3TrOjoaa)_TVYyg*kA55Z?eBj(9poeYrB?D_WFp@oQBVT|T9V_RIDA+Q zH#TDa=^)TCq}zrI7ED^-PxvauYeqZk4L6vE@$uw$JFoE|?%flEdQ!bWQ2-950yg6f(p=YzS77@gaizq z4cGx?+=9bBS03YS;`w1)ys;n&;&%jwn*=tfnGIxcJ(qh=kK{ymnrGTxyhkkJeTK+n zbyy-yLO(}P2i9%<=IiUi<&a|;W>lUDodosNRHU2w1vgQ=C*ZFLqR z->H$~bw%S;RW0Lf7NNA^>IV%O(t_hye;FCo6<7Zt7d*SMOTilEgTv2NQ?(PbC=gYZ zl?T#pLINm2r8(=L7YOQ`T|@4i(P1i~U_u6XY>syog*&Me=!o{J`w~$vH%wl;ITvn( z8M2$%yU?U){&?@nQtKrt$x!$c3!*1F+i|82V?*{yzbEHMe$;pH;9K~-%3&JBZj+P?)d^xY4{r{!IJvD&exRf>sE& z!ikmdKkyER8tCbmcp%Lxowpzw>k^R$DNM@#`}gbu8o&VORJgAl^;MHc-cr= zh>x7XF)6j~wJBFU`NwBD$Onqa>gSW+2}9b)7hj5v&A+t+c)xC3FV~d4g{_&ZKO#{@d?!eVx|Kc#?*7O?b6Mi&=Kqw|r^s^FK=Y;u?E3$1L^I()t zE%e?Xs0wEKkbeuaX1_L~kZEbkP3^7-A3-uV|5{l9H5h*qUcc4zW?-*GpIy|owB%Ek zL%$EySZ@M>ii{0ramP*J&FEl#MuE}j$B!LTCmd1BJRGplYrT31Mm{JTD&`R1@5VYl z+@8RCPMY#1=w$HY18izcWZOX}0h+qpw<*GDE=wqTX8fQt1QJScPu2e^E%2tPtQOr~ zT7pR=Ri?m?*8D(r#z;OvYK4X>6{MuQw>UamP^}ghLm~RHYcL+w1#aA1govQv%IZ0^ zC(@rp8aTqz!rVNCOh0r1<480ad)XW>_7!{%QTa#+?)B5FCyp6ohi;G*mJ}a;HHkb$ zGYn}VLP7HsmnCsa3GiC#>a|iMZ>`Bs9P5}qJZVkAi=fAshtQcv!Fs#)V_+ zCBi$JnWkSb9$#IoejGP5@G9=;(QF=6UYu=mdREqEETEcn@$e#SqFtCsWk`>t*q0ta zn2B4!Y~8(AF&_F-N_`&B4o|k>1}=1r2<>)c39Q61flnI>T^Alv3SA(>XlVv>862Tk zEZS%kH)+_y+Y~?;*iwWU9;pRz9Mg9{r1iV&X}pl^9*bjhi1V|U8DE>JJ1umWGpX_Fq&xw6O%JvWJ`y4MkBDv^Q}>vY%Kks5HoFy6Mnin6nXntC|KY-sdJC z$ZbP}=32d12qDz3Sp${V_$Vpq;7L!!8Z+|Vz8!0DWN9oD92Za{ADnMDdF-6&0Zp`vKOyjefm~d)5^6jj*h+}a#!YQz7tciEo!BcLQGySt$oLZhDo6?(WjKR@9(aW&qyR~p z_D^c8Q7PZHJTl)sIe8MRm#amp!HGV#wdz_mN)FZ|d&^m$U|sS>g+kQe$c>zOF=+?+ zjVUDP^JSeob-F-*6)^~oHfv5YJRKXYbK-6UdEjUTnqkN*U%x(^vwq3>R?~W+YLTGJ z$@}8SFBdAQWDBkuIah?NO&m$?si+4E+iktD;a~ovOQA+?dU^$tXP?mQUFJD&QQHYTe7<2yR)1YCjwK|N+~YasA}s)|aG(&&*R=eYMrkE_IF*f;CKXqA8wo*d2uxa6Q8hZhn7K z{il)va3mT1)r17*dtBB;>r7onQ@2a{TtT(=_U-+Hb5t_ukuEPEC=#90j^N2Lu4Cv> zag?!bLLR9C8%cUEzx4@ubj0GyPD%<2#<1GywpZ~~LO}}ZT0CbwJ31K`yCgYrQ2^{xavh-)rG_E`|>t=clwlM!S!wxkZ5wMa;2X#+p-9lDtNpu%3 z1wtw$Sx7EB1l_xHvR@gUrECBA;}+Qy@U+2#1+fdET_aU9mh$B{Obq%3hd*| z;|jiQsmZ&R`b3x`-Uv<9iO_}xO|oh(=hz!KIpj-Haxww739e<5^Bm!m#`^X4Jhy@T zRA}JP*Wb=QLy)E&a^si%YBF(4f3gi~v)z#@nKO-xqPA+&>XE{~Z0L8o>mo%j(rf}e zMyTu=2y^`X2Wlt}8|ImOy5R`h0pN)ylaWcw!?j$uSy&Vzx>l~9Dk+@cUagKvJsQ<& zUN*Wfd2iTC*#XG8H`>^!t>~!c1L}&{CoY9E*2w+|rZDs=`Tv(j9e7 zCQ-m3UvGtmghK$C1o0qlY#{}slG``^uKXfPNTcQ^3L9!l!509NVO&I4P&88<-!v8W zVXLxva(ZjX5(MjL-b>-bSyK=2=Iqi%kUyg!i(S!lSMFt*BU1P932XL~O0kFWJdh>- ziD>i45zGuXR8M{S=}WxD}*evzmV+DOdOSzV4F!c>&^Ui+lMx@j+}uNMr5tU zoEvnvuwr!D;^F+6M4Dpy;G*8qzE%a*GF#X=rt)y<^XVPDFd(6WkK-463-gJ>!{5#e4Rs?ZXBzb8$0JPN!E$bw)p zFtDl2y%c`aRVYd}UAl5Aytr^Fa1>`pyMiJQA*-+-qi>m`5JGHQ~|1t%UwvKX-c<_D&fNw#qE0o&(kO z-){GOjL%4s=?)U=W?F~Zd%XbL(i|kXIg*mRo$4D))<$HP!9lo_d!z6L5Bdzc^!YQ} z*nEi(pFgWx-Py&bv0?S(YmXg!pyyt`Q-|a87Iu%6n=*AOU9}wh2c4`i1D@sm*;19q zJtPnn#W{nLb=+9W3PqoTlP~!nCZt-TJL&`HBbVYPbH{ki?)GGH(HRG)k(^Ax-Rtd5 zDQ_WF0uVLcIam0+Dod>?zT2#r*p|x9-~6*;4yqmAj2?MYQJBF}q^GAB^}&q_b59Pm zcASRyiJ!Czqff$gq~(%0LM_`_njHqb8Zf6RmHXU|%>}g5ya-*jf6y2a2mWKy(npRT zAJw%Q0G(&FwXO|Yot*5vr}X(T!!<++R0au_^mSn zXY@P$R}}@xiGvN<%8+ioT942-0i+Q{SVF>**qj>sCCy!%mo#-kH1?KNeEYY9vro4g zEn5cVfukVz3Z>F7okO9Om!!pHcOV~_5aU?j?d63g9N-zCnEV%~gfxX@B58zDs89UE+|2BAFEXTuE83uCwa}mAeG7xYonv!u4QOi^ zJFwewOB-H2Z-2Y4M{V@qjvHtGZo@u0v|YLMzyAxyP7QkqEW9#V1LB15)}g9vL61n{ z!FXf&U7}UgXr%4MRl?`&+B{mxV1jeov)c7jBICb0_ka1}|LwmJ)7rHlz3@)mo;n@j PQVnJ;(7PzM+VejEF6sEs diff --git "a/docs/zh/server/performance/tuning_framework/oeaware/figures/\344\276\235\350\265\226\345\205\263\347\263\273.png" "b/docs/zh/server/performance/tuning_framework/oeaware/figures/\344\276\235\350\265\226\345\205\263\347\263\273.png" deleted file mode 100644 index 0f4c65a2533cebc54f6dedf4e6eba2d232b1feeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15321 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 KtXTQ!tN#HsaE4+4 diff --git a/docs/zh/server/performance/tuning_framework/oeaware/oeaware_user_guide.md b/docs/zh/server/performance/tuning_framework/oeaware/oeaware_user_guide.md deleted file mode 100644 index b602bec..0000000 --- a/docs/zh/server/performance/tuning_framework/oeaware/oeaware_user_guide.md +++ /dev/null @@ -1,748 +0,0 @@ -# oeAware用户指南 - -## 简介 - -oeAware是在openEuler上实现低负载采集感知调优的框架,目标是动态感知系统行为后智能使能系统的调优特性。传统调优特性都以独立运行且静态打开关闭为主,oeAware将调优拆分采集、感知和调优三层,每层通过订阅方式关联,各层采用插件式开发尽可能复用。 - -## 安装 - -配置openEuler的yum源,使用yum命令安装。在openEuler-22.03-LTS-SP4版本中会默认安装。 - -```shell -yum install oeAware-manager -``` - -## 使用方法 - -首先启动oeaware服务,然后通过`oeawarectl`命令进行使用。 - -### 服务启动 - -通过systemd服务启动。安装完成后会默认启动。 - -```shell -systemctl start oeaware -``` - -### 配置文件 - -配置文件路径:/etc/oeAware/config.yaml - -```yaml -log_path: /var/log/oeAware #日志存储路径 -log_level: 1 #日志等级 1:DEBUG 2:NFO 3:WARN 4:ERROR -enable_list: #默认使能插件 - - name: libtest.so #只配置插件,使能本插件的所有实例 - - name: libtest1.so #配置插件实例,使能配置的插件实例 - instances: - - instance1 - - instance2 - ... - ... -plugin_list: #可支持下载的包 - - name: test #名称需要唯一,如果重复取第一个配置 - description: hello world - url: https://gitee.com/openeuler/oeAware-manager/raw/master/README.md #url非空 - ... -``` - -修改配置文件后,通过以下命令重启服务。 - -```shell -systemctl restart oeaware -``` - -### 插件说明 - -**插件定义**:一个插件对应一个.so文件,插件分为采集插件、感知插件和调优插件。 - -**实例定义**:服务中的调度单位是实例,一个插件中包括多个实例。例如,一个采集插件包括多个采集项,每个采集项是一个实例。 - -**实例之间依赖关系**:每个实例运行前,需要满足其依赖关系。 - -![img](./figures/依赖关系.png) - -### 插件加载 - -服务会默认加载插件存储路径下的插件。 - -插件路径:/usr/lib64/oeAware-plugin/ - -另外也可以通过手动加载的方式加载插件。 - -```shell -oeawarectl -l | --load <插件名> -``` - -示例 - -```shell -[root@localhost ~]# oeawarectl -l libthread_collect.so -Plugin loaded successfully. -``` - -失败返回错误说明。 - -### 插件卸载 - -```shell -oeawarectl -r <插件名> | --remove <插件名> -``` - -示例 - -```shell -[root@localhost ~]# oeawarectl -r libthread_collect.so -Plugin remove successfully. -``` - -失败返回错误说明。 - -### 插件查询 - -#### 查询插件状态信息 - -```shell -oeawarectl -q #查询系统中已经加载的所有插件 -oeawarectl --query <插件名> #查询指定插件 -``` - -示例 - -```shell -Show plugins and instances status. ------------------------------------------------------------- -libpmu.so - pmu_counting_collector(available, close, count: 0) - pmu_sampling_collector(available, close, count: 0) - pmu_spe_collector(available, close, count: 0) - pmu_uncore_collector(available, close, count: 0) -libsystem_collector.so - thread_collector(available, close, count: 0) - kernel_config(available, close, count: 0) - command_collector(available, close, count: 0) - env_info_collector(available, close, count: 0) - net_interface_info(available, close, count: 0) -libdocker_collector.so - docker_collector(available, close, count: 0) -libub_tune.so - unixbench_tune(available, close, count: 0) -libsystem_tune.so - stealtask_tune(available, close, count: 0) - dynamic_smt_tune(available, close, count: 0) - smc_tune(available, close, count: 0) - xcall_tune(available, close, count: 0) - transparent_hugepage_tune(available, close, count: 0) - seep_tune(available, close, count: 0) - preload_tune(available, close, count: 0) - binary_tune(available, close, count: 0) - numa_sched_tune(available, close, count: 0) - realtime_tune(available, close, count: 0) - net_hard_irq_tune(available, close, count: 0) - multi_net_path_tune(available, close, count: 0) -libdocker_tune.so - docker_cpu_burst(available, close, count: 0) - docker_burst(available, close, count: 0) -libthread_scenario.so - thread_scenario(available, close, count: 0) -libanalysis_oeaware.so - hugepage_analysis(available, close, count: 0) - dynamic_smt_analysis(available, close, count: 0) - smc_d_analysis(available, close, count: 0) - xcall_analysis(available, close, count: 0) - net_hirq_analysis(available, close, count: 0) - numa_analysis(available, close, count: 0) - docker_coordination_burst_analysis(available, close, count: 0) - microarch_tidnocmp_analysis(available, close, count: 0) ------------------------------------------------------------- -format: -[plugin] - [instance]([dependency status], [running status], [enable cnt]) -dependency status: available means satisfying dependency, otherwise unavailable. -running status: running means that instance is running, otherwise close. -enable cnt: number of instances enabled. -``` - -失败返回错误说明。 - -#### 查询调优实例信息 - -```shell -oeawarectl --info -``` - -显示调优实例描述信息及运行状态。 - -#### 查询运行实例订阅关系 - -```shell -oeawarectl -Q #查询所有运行实例的订阅关系图 -oeawarectl --query-dep= <插件实例> #查询运行实例订阅关系图 -``` - -在当前目录下生成dep.png,显示订阅关系。 - -实例未运行,不会显示订阅关系。 - -示例 - -```sh -oeawarectl -e thread_scenario -oeawarectl -Q -``` - -![img](./figures/dep.png) - -### 插件实例使能 - -#### 使能插件实例 - -```shell -oeawarectl -e | --enable <插件实例> -``` - -使能某个插件实例,会将其订阅的topic实例一起使能。 - -失败返回错误说明。 - -通过以下命令查询调优实例 - -```sh -oeawarectl --info -``` - -其他插件主要用来提供数据和分析,可通过sdk获取插件数据。 - -带参数实例使能 - -```sh -oeawarectl -e xcall_tune # -c [path] 可选参数-c,使用path下的配置文件 -oeawarectl -e dynamic_smt_tune # -threshold [number] 可选参数-threshold,设置cpu利用率阈值 -oeawarectl -e multi_net_path_tune -ifname [name] # 必选参数-ifname,网卡亲和的接口名;可选参数-appname,生效进程;可选参数-matchip,是否强制匹配ip,默认true,自动匹配ip;可选参数-mode,支持模式0和模式1。依赖特定网卡(支持ntuple) -oeawarectl -e docker_burst # -docker_id [id1,id2...] 设置dockerid;-ratio 设置超分比例,默认20% -``` - -#### 关闭插件实例 - -```shell -oeawarectl -d | --disable <插件实例> -``` - -关闭某个插件实例,会将其订阅的topic实例一起关闭。 - -失败返回错误说明。 - -### 插件下载安装 - -通过`--list`命令查询支持下载的rpm包和已安装的插件。 - -```shell -oeawarectl --list -``` - -查询结果如下。 - -```shell -Supported Packages: #可下载的包 -[name1] #config中配置的plugin_list -[name2] -... -Installed Plugins: #已安装的插件 -[name1] -[name2] -... -``` - -通过`--install`命令下载安装rpm包。 - -```shell -oeawarectl -i | --install #指定--list下查询得到的包名称(Supported Packages下的包) -``` - -失败返回错误说明。 - -### 分析模式 - -```sh -oeawarectl analysis -h -usage: oeawarectl analysis [options]... - options - -t|--time set analysis duration in seconds(default 30s), range from 1 to 100. - -r|--realtime show real time report. - -v|--verbose show verbose information. - -h|--help show this help message. - --l1-miss-threshold set l1 tlbmiss threshold. - --l2-miss-threshold set l2 tlbmiss threshold. - --out-path set the path of the analysis report. - --dynamic-smt-threshold set dynamic smt cpu threshold. - --pid set the pid to be analyzed. - --numa-thread-threshold set numa sched thread creation threshold. - --smc-change-rate set smc connections change rate threshold. - --smc-localnet-flow set smc local net flow threshold. - --host-cpu-usage-threshold set host cpu usage threshold. - --docker-cpu-usage-threshold set docker cpu usage threshold. - -``` - ---l1-miss-threshold:l1-tlb—miss阈值,超过阈值,推荐使用大页。 - ---l2-miss-threshold:l2-tlb—miss阈值,超过阈值,推荐使用大页。 - ---out-path:分析报告输出路径。 - ---dynamic-smt-threshold:smt cpu利用率阈值,cpu利用率小于此阈值推荐使用smt。 - ---numa-thread-threshold:线程创建数阈值,每秒的线程创建数高于此值时,推荐numa调优。 - ---smc-change-rate:tcp连接状态变化率阈值。变化率低于阈值时,推荐smc-d。 - ---smc-localnet-flow:本地网络流量阈值。流量高于阈值时,推荐smc-d。 - ---host-cpu-usage-threshold:host cpu利用率阈值。host cpu利用率低于阈值时,推荐docker burst。 - ---docker-cpu-usage-threshold:docker cpu利用率阈值。docker容器cpu高于阈值时,推荐docker burst。 - -通过配置文件或者命令行参数设置相关阈值参数。 - -配置文件/etc/oeAware/analysis_config.yaml - -```yaml -#default analysis config -timeout: 5 # Client wait timeout -dynamic_smt: - threshold: 40.0 # Value range:[0,100]. - -hugepage: - l1_miss_threshold: 5.0 # Value range:[0,100]. - l2_miss_threshold: 10.0 # Value range:[0,100]. - -numa_analysis: - thread_threshold: 200 # thread count threshold to use numa native schedule. Value must be a non-negative integer. - -smc_d_analysis: - change_rate: 0.1 # Value must be a non-negative number. - local_net_flow: 100 # MB/S - -docker_coordination_burst: - host_cpu_usage_threshold: 45 # Value range:[0,100]. - docker_cpu_usage_threshold: 95 # Value range:[0,100]. - -microarch_tidnocmp: - service_list: - - mysqld # Supported service. The default value is mysqld. - cpu_part: - - 0xd02 -xcall_analysis: - threshold: 5 # Kernel cpu usage, value range:[0,100]. - num: 5 # top num syscall , value must be a non-negative integer. - -``` - -示例 - -执行以下命令,输出系统分析报告。 - -```sh -oeawarectl analysis -t 10 -``` - -报告分为三部分: - -- Data Analysis:根据系统运行状态,给出系统性能数据分析。 -- Analysis Conclusion:给出系统分析结论。 -- Analysis Suggestion:给出具体调优方法。 - -说明: - -- uncore_ops_num_per_second:每秒访存操作数,超过2000000次属于高访存。 -- remote_access_ratio:远端访存占比,超过5%,远端访存占比高。 - -### 帮助 - -通过`--help`查看帮助。 - -```shell -usage: oeawarectl [options]... - options - analysis run analysis mode. - -l|--load [plugin] load plugin. - -r|--remove [plugin] remove plugin from system. - -e|--enable [instance] enable the plugin instance. - -d|--disable [instance] disable the plugin instance. - -q query all plugins information. - --query [plugin] query the plugin information. - -Q query all instances dependencies. - --query-dep [instance] query the instance dependency. - --list the list of supported plugins. - --info the list of InfoCmd plugins. - -i|--install [plugin] install plugin from the list. - --help show this help message. -``` - -## 插件开发说明 - -### 基础数据结构 - -```c++ -typedef struct { - char *instanceName; // 实例名称 - char *topicName; // 主题名称 - char *params; // 参数 -} CTopic; - -typedef struct { - CTopic topic; - unsigned long long len; // data数组的长度 - void **data; // 存储的数据 -} DataList; - -const int OK = 0; -const int FAILED = -1; - -typedef struct { - int code; // 成功返回OK,失败返回FAILED - char *payload; // 附带信息 -} Result; - -``` - -### 实例基类 - -```c++ -namespace oeaware { -// Instance type. -const int TUNE = 0b10000; -const int SCENARIO = 0b01000; -const int RUN_ONCE = 0b00010; -class Interface { -public: - virtual Result OpenTopic(const Topic &topic) = 0; - virtual void CloseTopic(const Topic &topic) = 0; - virtual void UpdateData(const DataList &dataList) = 0; - virtual Result Enable(const std::string ¶m = "") = 0; - virtual void Disable() = 0; - virtual void Run() = 0; -protected: - std::string name; - std::string version; - std::string description; - std::vector supportTopics; - int priority; - int type; - int period; -} -} -``` - -实例开发继承实例基类,实现6个虚函数,并对类的7个属性赋值。 - -实例采用订阅发布模式,通过Subscribe获取数据,通过Publish接口发布数据。 - -### 属性说明 - -| 属性 | 类型 | 说明 | -| --- | --- | --- | -| name | string | 实例名称 | -| version | string | 实例版本(预留) | -| description | string | 实例描述 | -| supportTopics | vector\ | 支持的topic | -| priority | int | 实例执行的优先级 (调优 > 感知 > 采集)| -| type | int | 实例类型,通过比特位标识,第二位表示单次执行实例,第三位表示采集实例,第四位表示感知实例,第5位表示调优实例| -| period | int | 实例执行周期,单位ms,period为10的倍数 | - -### 接口说明 - -| 函数名 | 参数 | 返回值 | 说明 | -| --- | --- | --- | --- | -|Result OpenTopic(const Topic &topic) | topic:打开的主题 | | 打开对应的topic | -| void CloseTopic(const Topic &topic) | topic:关闭的主题| |关闭对应的topic | -| void UpdateData(const DataList &dataList) | dataList:订阅的数据 | | 当订阅topic时,被订阅的topic每周期会通过UpdateData更新数据 | -| Result Enable(const std::string ¶m = "") | param:预留 | | 使能本实例 | -| void Disable() | | | 关闭本实例 | -| void Run() | | | 每周期会执行run函数 | - -### 实例示例 - -```C++ -#include -#include - -class Test : public oeaware::Interface { -public: - Test() { - name = "TestA"; - version = "1.0"; - description = "this is a test plugin"; - supportTopics; - priority = 0; - type = 0; - period = 20; - } - oeaware::Result OpenTopic(const oeaware::Topic &topic) override { - return oeaware::Result(OK); - } - void CloseTopic(const oeaware::Topic &topic) override { - - } - void UpdateData(const DataList &dataList) override { - for (int i = 0; i < dataList.len; ++i) { - ThreadInfo *info = static_cast(dataList.data[i]); - INFO(logger, "pid: " << info->pid << ", name: " << info->name); - } - } - oeaware::Result Enable(const std::string ¶m = "") override { - Subscribe(oeaware::Topic{"thread_collector", "thread_collector", ""}); - return oeaware::Result(OK); - } - void Disable() override { - - } - void Run() override { - DataList dataList; - oeaware::SetDataListTopic(&dataList, "test", "test", ""); - dataList.len = 1; - dataList.data = new void* [1]; - dataList.data[0] = &pubData; - Publish(dataList); - } -private: - int pubData = 1; -}; - -extern "C" void GetInstance(std::vector> &interfaces) -{ - interfaces.emplace_back(std::make_shared()); -} -``` - -## 内部插件 - -### libpmu.so - -| 实例名称 | 架构 | 说明 | topic | -| --- | --- | --- | --- | -| pmu_counting_collector | aarch64 | 采集count相关事件 |cycles,net:netif_rx,L1-dcache-load-misses,L1-dcache-loads,L1-icache-load-misses,L1-icache-loads,branch-load-misses,branch-loads,dTLB-load-misses,dTLB-loads,iTLB-load-misses,iTLB-loads,cache-references,cache-misses,l2d_tlb_refill,l2d_cache_refill,l1d_tlb_refill,l1d_cache_refill,inst_retired,instructions | -| pmu_sampling_collector | aarch64 | 采集sample相关事件 | cycles, skb:skb_copy_datagram_iovec,net:napi_gro_receive_entry | -| pmu_spe_collector | aarch64 | 采集spe事件 | spe | -| pmu_uncore_collector | aarch64 | 采集uncore事件 | uncore | - -#### 限制条件 - -采集spe事件需要依赖硬件能力,此插件运行依赖 BIOS 的 SPE,运行前需要将 SPE 打开。 - -运行perf list | grep arm_spe查看是否已经开启SPE,如果开启,则有如下显示: - -```sh -arm_spe_0// [Kernel PMU event] -``` - -如果没有开启,则按下述步骤开启。 - -检查BIOS配置项 MISC Config --> SPE 的状态, 如果状态为 Disable,则需要更改为 Enable。如果找不到这个选项,可能是BIOS版本过低。 - -进入系统 vim /boot/efi/EFI/openEuler/grub.cfg,定位到内核版本对应的开机启动项,在末尾增加“kpti=off”。例如: - -```sh -linux /vmlinuz-4.19.90-2003.4.0.0036.oe1.aarch64 root=/dev/mapper/openeuler-root ro rd.lvm.lv=openeuler/root rd.lvm.lv=openeuler/swap video=VGA-1:640x480-32@60me rhgb quiet smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 crashkernel=1024M,high video=efifb:off video=VGA-1:640x480-32@60me kpti=off -``` - -按“ESC”,输入“:wq”,按“Enter”保存并退出。执行reboot命令重启服务器。 - -### libsystem_collector.so - -系统信息采集插件。 - -| 实例名称 | 架构 | 说明 | topic | -| --- | --- | --- | --- | -| thread_collector | aarch64/x86 | 采集系统中的线程信息 | thread_collector | -| kernel_config | aarch64/x86| 采集内核相关参数,包括sysctl所有参数、lscpu、meminfo等 | get_kernel_config,get_cmd,set_kernel_config | -| command_collector | aarch64/x86 | 采集sysstat相关数据 | mpstat,iostat,vmstat,sar,pidstat | -| net_interface_info | aarch64/x86 | 采集网络信息 | base,driver,local_net_affinity,net_thread_que_data | -| env_info_collector | aarch64/x86 | 采集系统信息 | static,realtime,cpu_util | - -### libdocker_collector.so - -docker信息采集插件。 - -| 实例名称 | 架构 | 说明 | topic | -| --- | --- | --- | --- | -| docker_collector | aarch64/x86 | 采集docker相关信息 | docker_collector | - -### libthread_scenario.so - -线程感知插件。 - -| 实例名称 | 架构 | 说明 | 订阅 | -| --- | --- | --- | --- | -| thread_scenario | aarch64/x86 | 通过配置文件获取对应线程信息 | thread_collector::thread_collector | - -#### 配置文件 - -thread_scenario.conf - -```sh -redis -fstime -fsbuffer -fsdisk -``` - -### libanalysis_oeaware.so - -| 实例名称 | 架构 | 说明 | 订阅 | -| --- | --- | --- | --- | -| hugepage_analysis | aarch64 | 分析是否推荐大页 | pmu_counting_collector::l1d_tlb,pmu_counting_collector::l1d_tlb_refill,pmu_counting_collector::l1i_tlb,pmu_counting_collector::l1i_tlb_refill,pmu_counting_collector::l2d_tlb,pmu_counting_collector::l2d_tlb_refill,pmu_counting_collector::l2i_tlb,pmu_counting_collector::l2i_tlb_refill | -| dynamic_smt_analysis | aarch64 | 分析是否推荐smt | env_info_collector::cpu_util | -| smc_d_analysis | aarch64 | 分析是否推荐smc-d | | -| xcall_analysis | aarch64 | 分析是否推荐xcall | env_info_collector::cpu_util,thread_collector::thread_collector | -| net_hirq_analysis | aarch64 | 分析是否推荐网卡中断调优 | pmu_sampling_collector::net:napi_gro_receive_entry | -| numa_analysis | aarch64 | 分析是否推荐numa调优 | pmu_counting_collector::sched:sched_process_fork,pmu_counting_collector::sched:sched_process_exit,pmu_uncore_collector::uncore | -| docker_coordination_burst_analysis | aarch64 | 分析是否推荐docker burst | env_info_collector::cpu_util, pmu_sampling_collector::cycles,docker_collector::docker_collector | -| microarch_tidnocmp_analysis | aarch64 | 分析是否推荐微架构调优 | thread_collector::thread_collector | - -### libsystem_tune.so - -系统调优插件。 - -| 实例名称 | 架构 | 说明 | 订阅 | -| --- | --- | --- | --- | -| stealtask_tune | aarch64 | 高负载场景下,通过轻量级搜索算法,实现多核间快速负载均衡,最大化cpu资源利用率 | 无 | -| smc_tune | aarch64 | 使能smc加速,对使用tcp协议的连接无感加速 | 无 | -| xcall_tune | aarch64 | 通过减少系统调用底噪,提升系统性能 | thread_collector::thread_collector | -| seep_tune | aarch64 | 使能智能功耗模式,降低系统能耗 | 无 | -| transparent_hugepage_tune | aarch64/x86 | 开启透明大页,降低tlbmiss | 无 | -| preload_tune | aarch64 | 无感加载动态库 | 无 | -| dynamic_smt_tune | aarch64 | 使能超线程 | 无 | -| binary_tune | aarch64 | 容器内进程调度优化 | env_info_collector::static,env_info_collector::realtime,thread_collector::thread_collector,docker_collector::docker_collector | -| numa_sched_tune | arrch64 | NUMA原生调度,优化线程调度 | 无 | -| net_hard_irq_tune | aarch64 | 网卡中断调优,优化网络程序性能 | env_info_collector::static,env_info_collector::cpu_util,net_interface_info::base::operstate_up,net_interface_info::driver::operstate_up,pmu_sampling_collector::net:napi_gro_receive_entry,pmu_sampling_collector::skb:skb_copy_datagram_iovec,pmu_sampling_collector::cycles, env_info_collector::net_thread_que_data::thread_recv_que_cnt | -| multi_net_path_tune | aarch64 | 网卡多路径调优,优化网络程序性能 | 无 | - -#### 配置文件 - -xcall.yaml - -``` yaml -redis: # 线程名称 - - xcall_1: 1 #xcall_1表示xcall优化方式,目前只有xcall_1; 1表示需要优化系统调用号 - - xcall_2: 22 #目前只支持epoll_pwait -... -``` - -preload.yaml - -路径:/etc/oeAware/preload.yaml - -```yaml -- appname: "" - so: "" -``` - -通过执行oeawarectl -e preload_tune命令, 根据配置文件给对应进程加载so。 - -#### 限制条件 - -xcall_tune依赖内核特性,需要开启FAST_SYSCALL编译内核,并且在cmdline里增加xcall字段。 - -### libub_tune.so - -unixbench调优插件。 - -| 实例名称 | 架构 | 说明 | 订阅 | -| --- | --- | --- | --- | -| unixbench_tune | aarch64/x86 | 通过减少远端内存访问,优化ub性能 | thread_collector::thread_collector | - -### libdocker_tune.so - -| 实例名称 | 架构 | 说明 | 订阅 | -| --- | --- | --- | --- | -| docker_cpu_burst | aarch64 | 在出现突发负载时,CPUBurst可以为容器临时提供额外的CPU资源,缓解CPU限制带来的性能瓶颈 | pmu_counting_collector::cycles,docker_collector::docker_collector | - -## 外部插件 - -外部插件需要通过以下命令安装,例如安装numafast相关插件。 - -```sh -oeawarectl -i numafast -``` - -### libscenario_numa.so - -| 实例名称 | 架构 | 说明 | 订阅 | topic | -| --- | --- | --- | --- | --- | -| scenario_numa | aarch64 | 感知当前环境跨NUMA访存比例,用于实例或sdk订阅(无法单独使能) | pmu_uncore_collector::uncore | system_score | - -### libtune_numa.so - -| 实例名称 | 架构 | 说明 | 订阅 | -| --- | --- | --- | --- | -| tune_numa_mem_access | aarch64 | 周期性迁移线程和内存,减少跨NUMA内存访问 | scenario_numa::system_score, pmu_spe_collector::spe, pmu_counting_collector::cycles | - -## SDK使用说明 - -```C -typedef int(*Callback)(const DataList *); -int OeInit(); // 初始化资源,与server建立链接 -int OeSubscribe(const CTopic *topic, Callback callback); // 订阅topic,异步执行callback -int OeUnsubscribe(const CTopic *topic); // 取消订阅topic -int OePublish(const DataList *dataList); // 发布数据到server -void OeClose(); // 释放资源 -``` - -**示例** - -```C -#include "oe_client.h" -#include "command_data.h" -int f(const DataList *dataList) -{ - int i = 0; - for (; i < dataList->len; i++) { - CommandData *data = (CommandData*)dataList->data[i]; - for (int j = 0; j < data->attrLen; ++j) { - printf("%s ", data->itemAttr[j]); - } - printf("\n"); - } - return 0; -} -int main() { - OeInit(); - CTopic topic = { - "command_collector", - "sar", - "-q 1", - }; - if (OeSubscribe(&topic, f) < 0) { - printf("failed\n"); - } else { - printf("success\n"); - } - sleep(10); - OeClose(); -} -``` - -## 约束限制 - -### 功能约束 - -oeAware默认集成了arm的微架构采集libkperf模块,该模块同一时间只能有一个进程进行调用,如其他进程调用或者使用perf命令可能存在冲突。 - -### 操作约束 - -当前oeAware仅支持root组用户进行操作,sdk支持root组和oeaware组用户使用。 - -## 注意事项 - -oeAware的配置文件和插件用户组和权限有严格校验,不要对oeAware的相关文件进行权限和用户组进行修改。 - -权限说明: - -- 插件文件:440 - -- 客户端执行文件:750 - -- 服务端执行文件:750 - -- 服务配置文件:640 -- Gitee