Avamar - 如何设置 Avamar Client 高速缓存的大小,以防止高速缓存溢出导致备份性能问题
Summary: 本文介绍如何设置 Avamar Client 缓存以避免缓存溢出,避免可能导致备份性能缓慢的缓存溢出。
Instructions
检查客户端高速缓存是否需要调整。
如果高速缓存文件的大小合适,请勿更改它 - 不会对性能产生任何有益影响。
调整最大高速缓存大小的规则
确保高速缓存变得非常大,以至于客户端最终会交换,因为它没有足够的物理 RAM 来处理所有进程。交换是指内存页在 RAM 和磁盘之间的移动。
调整最大高速缓存大小的最佳实践:
- 切勿允许总组合高速缓存大小超过总可用物理 RAM 的四分之一。
- 将最大文件和哈希高速缓存大小设置为总可用物理 RAM 的一小部分。使用负整数指定文件和哈希高速缓存大小。
- 将总高速缓存大小限制为物理 RAM 的大约四分之一。
- 将其中一个缓存设置为 -5(这相当于客户端 RAM 的 20%),并将另一个缓存设置为 -32(客户端 RAM 的 3%)。
- 例如,对于大型数据库客户端,请使用以下设置:
--filecachemax=-32
--hashcachemax=-5 - 如果使用默认高速缓存大小以外的其他大小,请在客户端上的avtar.cmd文件中包含自定义的最大高速缓存设置。
- 有时,唯一的选择可能是增加客户端上的物理 RAM 量。还可以使用多个较小的数据集来备份客户端。
- 如有必要,将高速缓存的大小限制在最佳值以下:
- 对于典型的文件服务器,首先将所需的 RAM 分配给文件缓存。
- 对于典型的数据库客户端,首先将所需的 RAM 分配给哈希缓存。
调整文件缓存
如果文件缓存已删除、未使用或过小,则必须处理文件缓存中未命中的每个文件。处理涉及对文件内容进行读取、分块、压缩和哈希处理。
在 Avamar 进程可以检查哈希值之前是否已发送到 Avamar Server 之前,就会发生这种情况。
如果文件缓存中存在文件,则不需要由 avtar 读取。
这样可以节省大量时间和处理时间,并尽可能缩短备份持续时间。
默认情况下,文件缓存最多可占用 Avamar Client 上物理 RAM 的八分之一。
例如,如果客户端具有 4 GB RAM,则文件高速缓存限制为 4 GB 除以 8,即最大 512 MB。
每次需要增加时,文件缓存的大小都会翻倍。
文件高速缓存的大小可以是(以 MB 为单位):5.5 MB、11 MB、22 MB、44 MB、88 MB、176 MB、352 MB、704 MB 和 1,408 MB。
由于 avtar 程序是 32 位应用程序,因此 avtar 可以使用的最大文件缓存大小限制为小于 2 GB。
在客户端具有 4 GB RAM 的示例中,文件高速缓存的最大大小为 352 MB。
文件缓存中的每个条目都包含一个 4 字节标头和两个 20 字节 SHA-1 哈希值(总共 44 个字节):
- 文件属性的 SHA-1 哈希条目。
文件属性包括:文件名、文件路径、修改时间、文件大小、所有者、组和权限。 - SHA-1 哈希条目用于实际文件内容的哈希,与文件属性无关。
文件缓存规则
如果客户端包含 N000 万个文件,则文件缓存必须至少为 N 个百万个文件 x 4400 万字节/百万个文件。这意味着文件缓存必须至少为 N x 44 MB,其中 N 是备份中的数百万个文件的数量。
示例 — 文件缓存
当客户端有 400 万个文件时,文件缓存必须至少为 176 MB (4 x 44 MB)。必须允许文件高速缓存增加到 176 MB 以容纳所有文件。
最佳实践:
文件高速缓存必须至少为 N x 44 MB,其中 N 是备份中的数百万个文件的数量。每次增长时,文件缓存的大小都会翻倍。要充分调整文件高速缓存的大小,请执行以下作:
- 按如下所示设置 --filecachemax 值:
--filecachemax = 2 x N x 44
其中 N 是备份中数百万个文件的数量。 - 将 --hashcachemax 设置为较小的值,例如:
--hashcachemax=30
调整哈希缓存
如果 avtar 进程发现哈希缓存中不包含区块的哈希,则会查询 Avamar Server 是否存在该哈希。
默认情况下,哈希缓存最多可占用 Avamar Client 上物理 RAM 的十六分之一。
使用“调整文件高速缓存”中所述的具有 4 GB RAM 的相同客户端时,哈希高速缓存限制为 4 GB/16,即最大 256 MB。
每次需要增加时,哈希缓存的大小也会翻倍。
当前哈希缓存大小以 MB 为单位:24 MB、48 MB、96 MB、192 MB、384 MB、768 MB 等。在此示例中,客户端具有 4 GB RAM,散列高速缓存的最大大小为 192 MB。
哈希缓存中的每个条目都由一个 4 字节标头和一个 SHA-1 哈希(即区块或复合内容的哈希)组成。
哈希缓存规则
如果客户端包含 Y GB 的数据库数据,则散列缓存必须至少为 YGB/平均区块大小 x 2400 万字节/百万个区块。
使用 24 KB 作为所有备份的平均区块大小。
哈希缓存必须至少为 Y MB,其中 Y 是备份中数据库数据的 GB 数。
示例 — 哈希缓存
当数据库客户端具有 500 GB 的数据库数据时,必须允许哈希高速缓存增加到至少 500 MB。
必须允许散列高速缓存增加到下一个增量大小 (768 MB),以容纳数据库备份中所有区块的散列。
最佳实践
哈希缓存必须至少为 Y MB,其中 Y 是要备份的数据库的大小(以 GB 为单位)。
每次增长时,哈希缓存的大小都会翻倍。
要充分调整哈希缓存的大小,请按如下所示设置 --hashcachemax 值:
--hashcachemax = 2 x Y
其中 Y 是要备份的数据库的大小(以 GB 为单位)。