An Experience Manager Assets 安装程序包含许多硬件、软件和网络组件。 根据您的部署方案,您可能需要对硬件、软件和网络组件进行特定的配置更改以消除性能瓶颈。
此外,确定并遵守某些硬件和软件优化准则有助于奠定坚实的基础,从而帮助您 Experience Manager Assets 满足性能、可扩展性和可靠性方面的期望。
中的性能不佳 Experience Manager Assets 可能会影响用户关于交互性能、资产处理、下载速度和其他方面的体验。
事实上,在为任何项目建立目标指标之前,您都要执行性能优化这一基本任务。
下面是一些关键重点领域,在这些领域中,您可以发现并修复性能问题,以免它们对用户产生影响。
虽然Experience Manager在多个平台上都受支持,但Adobe发现对Linux和Windows上的本机工具支持度最高,这有助于实现最佳性能和易用性。 理想情况下,您应该部署64位操作系统以满足 Experience Manager Assets 部署。 与任何Experience Manager部署一样,您应尽可能实施TarMK。 虽然TarMK不能扩展至超过单个创作实例,但发现其性能优于MongoMK。 您可以添加TarMK卸载实例以提高的工作流处理能力 Experience Manager Assets 部署。
要缩短资源上传时间,请为Java临时目录使用高性能存储。 在Linux和Windows上,可以使用RAM驱动器或固态硬盘。 在基于云的环境中,可以使用等效的高速存储类型。 例如,在Amazon EC2中, 临时驱动器 驱动器可用于临时文件夹。
假定服务器内存充足,请配置RAM驱动器。 在Linux上,运行以下命令以创建8 GB RAM驱动器:
mkfs -q /dev/ram1 800000
mkdir -p /mnt/aem-tmp
mount /dev/ram1 /mnt/aem-tmp
df -H | grep aem-tmp
在Windows操作系统上,使用第三方驱动程序创建RAM驱动器,或者只使用高性能存储(如SSD)。
高性能临时卷就绪后,设置JVM参数 -Djava.io.tmpdir
. 例如,您可以将下面的JVM参数添加到 CQ_JVM_OPTS
中的变量 bin/start
脚本 Experience Manager:
-Djava.io.tmpdir=/mnt/aem-tmp
Adobe建议部署 Experience Manager Assets 在Java 8上实现最佳性能。
设置以下JVM参数:
-XX:+UseConcMarkSweepGC
-Doak.queryLimitInMemory
=500000-Doak.queryLimitReads
=100000-Dupdate.limit
=250000-Doak.fastQuerySize
=true建议所有用户都将数据存储区与区段存储区分开 Experience Manager Assets 用户。 此外,配置 maxCachedBinarySize
和 cacheSizeInMB
参数可以帮助最大化性能。 设置 maxCachedBinarySize
可保存在缓存中的最小文件大小。 指定内存中缓存的大小,用于内的数据存储 cacheSizeInMB
. Adobe建议将此值设置为占栈总大小的2-10%。 但是,负载/性能测试可以帮助确定理想的设置。
将大量资产上传到时 Adobe Experience Manager,为了允许内存消耗意外达到峰值,并防止JVM因OutOfMemoryErrors而失败,请减小所配置的缓冲图像缓存的最大值。 假设您有一个最大栈的系统(- Xmx
参数)、设置为1 GB的Oak BlobCache和设置为2 GB的文档缓存。 在这种情况下,缓冲缓存将最多占用1.25 GB和内存,对于意外的峰值,仅留下0.75 GB的内存。
在OSGi Web控制台中配置缓冲缓存大小。 在 https://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache
,设置属性 cq.dam.image.cache.max.memory
以字节为单位。 例如,1073741824为1 GB(1024 x 1024 x 1024 = 1 GB)。
从Experience Manager6.1 SP1 ,如果您使用 sling:osgiConfig
配置此属性的节点,确保将数据类型设置为Long。 有关更多详细信息,请参阅 CQBufferedImageCache在资产上传期间占用栈.
在大规模实施中实施S3或共享文件数据存储区有助于节省磁盘空间并提高网络吞吐量。 有关使用共享数据存储的利弊的更多信息,请参阅 Assets大小调整指南.
以下S3数据存储配置( org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg
)帮助Adobe将12.8 TB的二进制大对象(BLOB)从现有文件数据存储提取到客户站点的S3数据存储中:
accessKey=<snip>
secretKey=<snip>
s3Bucket=<snip>
s3Region=us-standard
s3EndPoint=<a href="https://s3.amazonaws.com/">s3.amazonaws.com</a>
connectionTimeout=120000
socketTimeout=120000
maxConnections=80
writeThreads=60
concurrentUploadsThreads=30
asyncUploadLimit=30
maxErrorRetry=1000
path=/opt/author/crx-quickstart/repository/datastore
s3RenameKeys=false
s3Encryption=SSE_S3
proactiveCaching=true
uploadRetries=1000
migrateFailuresCount=400
Adobe建议启用HTTPS,因为许多公司都有监听HTTP流量的防火墙,这会给上载和损坏文件带来负面影响。 对于大型文件上传,请确保用户已用有线方式连接到网络,因为WiFi网络会很快饱和。 有关确定网络瓶颈的准则,请参见 Assets大小调整指南. 要通过分析网络拓扑来评估网络性能,请参见 Assets网络注意事项.
首先,您的网络优化策略取决于可用带宽量和您的负载。 Experience Manager 实例。 常见的配置选项(包括防火墙或代理)有助于提高网络性能。 请牢记以下要点:
如有可能,请将 DAM更新资产 工作流转换为临时。 该设置显着减少了处理工作流所需的开销,因为在这种情况下,工作流不需要经过正常的跟踪和存档过程。
导航到 /miscadmin
在 Experience Manager 部署位置 https://[aem_server]:[port]/miscadmin
.
展开 工具 > 工作流 > 模型 > dam.
打开 DAM更新资产. 从浮动工具面板切换到 页面 选项卡,然后单击 页面属性.
选择 瞬态工作流 并单击 确定.
某些功能不支持临时工作流。 如果您的 Assets 部署需要这些功能,请勿配置临时工作流。
如果无法使用临时工作流,请定期运行工作流清除以删除已存档的 DAM更新资产 工作流可确保系统性能不会降低。
通常,每周执行清除工作流。 但是,在资源密集型场景中(如在大规模资产摄取期间),您可以更频繁地执行该操作。
要配置工作流清除,请通过OSGi控制台添加新的AdobeGranite工作流清除配置。 接下来,在每周维护时段中配置和计划工作流。
如果清除时间过长,则会超时。 因此,您应确保完成清除作业,以避免由于大量工作流而导致清除工作流无法完成的情况。
例如,在执行大量非临时工作流(创建工作流实例节点)后,您可以执行 ACS AEM Commons工作流移除程序 临时性的。 它立即删除多余的已完成工作流实例,而不是等待AdobeGranite工作流清除计划程序运行。
默认情况下, Experience Manager 运行的最大并行作业数等于服务器上的处理器数。 此设置的问题在于,在重负载期间,所有处理器都被 DAM更新资产 工作流,降低UI响应速度并防止 Experience Manager 防止运行其他进程,从而保护服务器的性能和稳定性。 最佳做法是,通过执行以下步骤,将此值设置为服务器上可用处理器的一半:
日期 Experience Manager 作者,访问 https://[aem_server]:[port]/system/console/slingevent
.
单击 编辑 ,例如,与您的实施相关的每个工作流队列中的 Granite Transient工作流队列.
更新值 最大并行作业数 并单击 保存.
首先,将队列设置为一半可用处理器是一种可行的解决方案。 但是,您可能必须增加或减少此数字才能达到最大吞吐量并根据环境对其进行调整。 瞬态和非瞬态工作流以及其他进程(如外部工作流)有单独的队列。 如果多个队列同时设置为50%的处理器处于活动状态,则系统可能会快速过载。 大量使用的队列因用户实施而异。 因此,您可能必须仔细配置这些服务器以最大限度地提高效率,而又不能牺牲服务器的稳定性。
此 DAM更新资产 工作流包含为任务配置的一整套步骤,例如Dynamic Media PTIFF生成和 Adobe InDesign Server 集成。 但是,大多数用户可能不需要执行以下几个步骤。 Adobe建议您创建 DAM更新资产 工作流模型,并删除任何不必要的步骤。 在这种情况下,请更新以下项的启动器 DAM更新资产 指向新模型。
运行 DAM更新资产 工作流会显着增加文件数据存储的大小。 通过Adobe进行的实验表明,如果在8小时内执行约5500个工作流,则数据存储大小可以增加约400 GB。
这是临时增加,运行数据存储垃圾收集任务后,数据存储将恢复到其原始大小。
通常,数据存储垃圾收集任务与其他计划维护任务一起每周运行。
如果磁盘空间有限并运行 DAM更新资产 工作流中,请考虑更频繁地安排垃圾收集任务。
客户在其网站中使用各种大小和格式的图像,或将其分发给业务合作伙伴。 由于每个演绎版都会增加资源在存储库中的占地面积,因此Adobe建议谨慎使用此功能。 要减少处理和存储图像所需的资源量,您可以在运行时生成这些图像,而不是在摄取期间生成演绎版。
许多Sites客户都实施一个图像servlet,该图像可在请求图像时调整大小和裁剪图像,这会对发布实例施加额外的负载。 但是,只要可以缓存这些图像,挑战就可以减轻。
另一种方法是使用Dynamic Media技术完全放弃图像操作。 此外,您可以部署不仅从以下位置接管节目生成职责的Brand Portal: Experience Manager 基础架构,以及整个发布层。
如果您自定义 DAM更新资产 此工作流用于使用ImageMagick生成演绎版,Adobe建议您修改 policy.xml
文件位置 /etc/ImageMagick/
. 默认情况下, ImageMagick使用操作系统卷上的全部可用磁盘空间和可用内存。 在中进行以下配置更改 policymap
部分 policy.xml
以限制这些资源。
<policymap>
<!-- <policy domain="system" name="precision" value="6"/> -->
<policy domain="resource" name="temporary-path" value="/ephemeral0/imagemagick_tmp"/>
<policy domain="resource" name="memory" value="1000MiB"/>
<policy domain="resource" name="map" value="1000MiB"/>
<!-- <policy domain="resource" name="area" value="1gb"/> -->
<policy domain="resource" name="disk" value="10000MiB"/>
<!-- <policy domain="resource" name="file" value="768"/> -->
<policy domain="resource" name="thread" value="1"/>
<policy domain="resource" name="throttle" value="50"/>
<!-- <policy domain="resource" name="time" value="3600"/> -->
</policymap>
此外,还将ImageMagick临时文件夹的路径设置为 configure.xml
文件(或通过设置环境变量 MAGICK_TEMPORARY_PATH
)到具有足够空间和IOPS的磁盘分区。
如果ImageMagick使用所有可用磁盘空间,错误配置可能会使服务器不稳定。 使用ImageMagick处理大型文件所需的策略更改可能会影响 Experience Manager 性能。 有关更多信息,请参阅 安装和配置ImageMagick.
ImageMagick policy.xml
和 configure.xml
文件位于 /usr/lib64/ImageMagick-*/config/
而不是 /etc/ImageMagick/
请参见 ImageMagick文档 用于配置文件的位置。
如果您使用 Experience Manager 如果您计划处理大量大型PSD或PSB文件,请在Adobe Managed Services (AMS)上联系Adobe客户支持。 与Adobe客户支持代表合作,为您的AMS部署实施这些最佳实践,并为Adobe的专有格式选择最佳工具和模型。 Experience Manager 可能无法处理超过 30000 x 23000 像素的高分辨率 PSB 文件。
每当在中修改元数据时,XMP写回都会更新原始资源 Experience Manager,从而导致出现以下情况:
所列成果消耗了相当多的资源。 因此,如果不需要回写,Adobe建议禁用XMP。 有关更多信息,请参阅 XMP写回.
如果选中运行工作流标志,则导入大量元数据可能会导致资源密集的XMP写回活动。 在精益服务器使用期间规划此类导入,以便其他用户的性能不会受到影响。
在将资源复制到大量发布实例(例如在Sites实施中)时,Adobe建议您使用链复制。 在这种情况下,创作实例将复制到单个发布实例,然后复制到其他发布实例,从而释放创作实例。
Adobe不建议自动激活资源。 但是,如有必要,Adobe建议将此作为工作流中的最后一步,通常是DAM更新资源。
安装 最新Service Pack 和性能相关的修补程序,因为这些修补程序通常包括系统索引的更新。 参见 性能调整提示 进行一些索引优化。
为经常运行的查询创建自定义索引。 有关详细信息,请参阅 分析慢查询的方法 和 编制自定义索引. 有关查询和索引最佳实践的其他见解,请参阅 有关查询和索引的最佳实践.
可以对Oak索引配置进行一些优化,以帮助改进 Experience Manager Assets 性能。 更新索引配置以缩短重新索引时间:
/crx/de/index.jsp
并以管理用户身份登录。/oak:index/lucene
.String[]
属性 excludedPaths
具有值 /var
, /etc/workflow/instances
、和 /etc/replication
./oak:index/damAssetLucene
. 添加 String[]
属性 includedPaths
带值 /content/dam
. 保存更改。如果您的用户不需要对资源进行全文搜索,例如,搜索PDF文档中的文本,然后禁用它。 您可以通过禁用全文索引来提高索引性能。 禁用 Apache Lucene 文本提取,请执行以下步骤:
在创建可生成大型结果集的查询时,请使用 guessTotal
参数,以避免在运行这些参数时内存使用率过高。
存在两个与中的大型文件相关的主要已知问题 Experience Manager. 当文件大小大于2 GB时,冷备用同步可能会出现内存不足的情况。 在某些情况下,它会阻止备用同步运行。 在其他情况下,它会导致主实例崩溃。 此方案适用于中的任何文件 Experience Manager 大于2GB,包括内容包。
同样,当文件在使用共享S3数据存储时的大小达到2 GB时,可能需要一些时间才能将文件从缓存完全保存到文件系统。 因此,在使用无二进制复制时,可能会在复制完成之前未保留二进制数据。 这种情况可能导致一些问题,尤其是当数据的可用性很重要时。
每 Experience Manager 部署,建立能够快速发现并解决瓶颈的性能测试机制。 以下是一些需要重点关注的关键领域。
对于客户的所有网络性能问题,请执行以下任务:
要通过高效的CPU利用率和负载共享将延迟降至最低并实现高吞吐量,请监控您的服务器性能, Experience Manager 定期部署。 特别是: