Adobe AEM 之系统维护和数据存储篇

系统维护

清理磁盘空间占用

Online Revision Cleanup

Offline Revision Cleanup

关闭AEM默认的Version生成方式进一步永久性的减小磁盘占用

数据存储方式

File Storage

Mongo Storage


系统维护

清理磁盘空间占用

AEM使用一段时间之后,因AEM的存储机制问题,AEM的Repository的文件夹的大小会越来越大,会造成极大的系统开销甚至导致数据错误时AEM崩溃无法运行。AEM6.3以后提供两种方式清理AEM的数据仓库以节省磁盘占用。下面为具体步骤,亦可参考Adobe官网https://helpx.adobe.com/experience-manager/6-4/sites/deploying/using/revision-cleanup.html

Online Revision Cleanup

依次进入Tools-Operations-Maintenance 进入系统维护工具

或者直接访问 http://localhost:4502/libs/granite/operations/content/maintenance.html

Adobe AEM 之系统维护和数据存储篇_第1张图片

AEM提供了两组清理工具,一组为建议Daily执行的,一组为建议Weekly执行的。

点击Daily Maintenance Window,即可发现系统默认提供了两个清理工具

Adobe AEM 之系统维护和数据存储篇_第2张图片

可以直接手动运行这个Revision Clean Up,该工具运行后,可以减少repository\segmentstore文件夹的大小

点击Weekly Maintenance Window,即可发现系统默认提供了两个清理工具

Adobe AEM 之系统维护和数据存储篇_第3张图片

可以直接手动运行这个Data Store Garbage Collection,该工具运行后,可以减少repository\datastore文件夹的大小

备注:如发现运行Online Revision Cleanup中的任何清理工具均无任何效果,则需要用Offline Revision Cleanup进行清理。该问题根据官网介绍,可能是因为清理机制的问题。

Offline Revision Cleanup

如发现Online Revision Cleanup的方式无法清理,需要使用Offline Revision Cleanup

首先访问https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-run/下载合适版本的 oak-run.jar 工具

然后关掉AEM实例

依次执行如下命令:

  1. Shut down AEM.
  2. 执行命令 java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore
  3. 执行命令 java -jar oak-run.jar checkpoints install-folder/crx-quickstart/repository/segmentstore rm-unreferenced
  4. 执行命令 java -jar -Dsun.arch.data.model=32 oak-run.jar compact install-folder/crx-quickstart/repository/segmentstore

关闭AEM默认的Version生成方式进一步永久性的减小磁盘占用

AEM默认会开启Version生成,当你上传,更新,新建,发布一个页面或者asset时,均会生成一个对应的Version,而这些额外的Version默认设置下是不会被删除的,会造成磁盘占用越来越大,可以通过修改VersionManagerImpl这个类的设置开关闭Version生成,或者开启Version Purgin功能自动清理Version。

Adobe AEM 之系统维护和数据存储篇_第4张图片

数据存储方式

AEM有两种形式的数据,一种为Node数据,主要存储的是JCR属性,另一个为二进制数据,主要存储的是上传的图片,视频等。安装并启动一个AEM实例后,在默认情况下,这两种形式的数据均以Tar Storage(一种文件存储系统)的形式储存在本地磁盘中。可参考https://helpx.adobe.com/experience-manager/6-4/sites/deploying/using/storage-elements-in-aem-6.html

File Storage

AEM的默认数据存储方式,该方式下数据已Tar文件的形式存储,该方式具有比较高的性能,也是AEM建议的存储方式,该方式的缺点是如果用户会上传大量的图片,视频,以及每天会有大量的author和修改的话,会造成repository文件夹很大,甚至几TB,这样一是比较昂贵,而是因为数据文件过多,增加了数据损坏导致系统崩溃的风险。

该模式的几种优化方案:

  1. 将一个网络磁盘挂载到服务器上映射为本地磁盘路径,然后将数据文件存储在该路径下,因为这个网络磁盘可能是一个比较便宜的虚拟机,或者是类似于OSS这样的专业网盘,价格相比服务器磁盘会便宜,可降低运维费用。备注:可参考该文档将阿里的OSS映射为一个本地磁盘路径,http://data-migration.oss-ap-southeast-1.aliyuncs.com/MountOSSasLocalFilesystemusingOSSFS.pdf
  2. 将二进制数据和Node数据拆开,单独将二进制数据(视频,图片等)配置在第三方云当中,目前AEM原生支持Amazon S3 Data Store和Azure Data Store这两种云。具体配置可参考https://helpx.adobe.com/experience-manager/6-4/sites/deploying/using/data-store-config.html

Mongo Storage

根据AEM官方介绍,如果符合以下条件,建议使用Mongo Storage存储方式,否则还是应使用默认的file storage

  • More than 1000 unique users per day;
  • More than 100 concurrent users;
  • High volumes of page edits;
  • Large rollouts or activations

启用该存储方式,可以将Node数据以及二进制数据(可选,二进制数据仍可以已文件形式存在本地磁盘或者S3等第三方云),这样可以借助Mongo Storage的高性能,分布式的特点提高AEM的数据存储性能。具体可参考https://helpx.adobe.com/experience-manager/6-4/sites/deploying/using/aem-with-mongodb.html

 

 

 

你可能感兴趣的:(AEM)