设置AEM S3数据存储的最佳方法

时间:2017-03-31 07:19:23

标签: amazon-s3 aem jackrabbit jackrabbit-oak

我们现有AEM 6.1的设置,它使用TarMK进行数据存储。要将所有资产迁移到S3,我按照此处的所有步骤操作:https://docs.adobe.com/docs/en/aem/6-1/deploy/platform/data-store-config.html#Data%20Store%20Configurations(Amazon S3数据存储)。显然,数据已同步到S3但是当我检查磁盘使用情况报告时,我仍然看到资产正在使用磁盘空间,即使是现有的和新添加的资产也是如此。如果资产仍然使用磁盘空间,那么将S3用于资产的目的是什么?或者我做错了什么?如何验证我的设置是否真的使用S3?这是我的S3DataStore.config

accessKey="xxxxxxxxxx"
secretKey="xxxxxxxxxx"
s3Bucket="dev-aem-assets-local"
s3Region="eu-west-1"
connectionTimeout="120000"
socketTimeout="120000"
maxConnections="40"
writeThreads="30"
maxErrorRetry="10"
continueOnAsyncUploadFailure=B"true"
cacheSize="0"
minRecordLength="10"

另一个问题是:我是否需要在发布商上进行相同的设置?或者只是通过复制二进制数据来对作者进行操作并使用发布者吗?

2 个答案:

答案 0 :(得分:3)

你的问题有几个部分,所以我将答案分解为逻辑块。如果我错过任何东西,请喊。

您的迁移设置是正确的,S3 使用磁盘空间。这是针对直写缓存的。

AEM使用直写式缓存写入S3,此缓存的所有设置都在S3配置文件中。对数据存储的任何写入都首先写入此高速缓存。然后将异步后台线程上传到S3存储桶。这种机制使AEM非常敏感,因为它没有被慢速S3写入阻止。此外,最近编写的blob的数据读取速度很快,因为它们不需要从S3进行慢速读取。简而言之,对于AEM来说,S3 IO流量太慢,因此这种缓存可以提升性能。您无法禁用它,因为异步写入S3需要它。您可以减小尺寸,但建议至少为S3铲斗尺寸的50%。

您可以通过查看日志以查看与AWS相关的消息(grep for aws)来验证您的S3设置。

对于发布商,是的,您需要从旧发布商迁移到新发布商。假设您没有使用无二进制复制,则需要为发布者提供不同的S3存储桶。通常,您将从作者迁移到作者和发布者,再迁移到发布者以进行标准实现。

答案 1 :(得分:1)

您还可以通过查看S3存储桶及其上的流量来验证您的S3数据使用情况。如果在S3存储桶上启用了版本控制,则所有blob都将显示版本标记。

可以从日志监视blob的异步上载,IP流量监视将显示与S3存储桶相关的活动。最有用的方法是查看AEM服务器和S3端点之间的网络流量。