mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
spa_load_verify() may consume too much memory
When a pool is imported it will scan the pool to verify the integrity of the data and metadata. The amount it scans will depend on the import flags provided. On systems with small amounts of memory or when importing a pool from the crash kernel, it's possible for spa_load_verify to issue too many I/Os that it consumes all the memory of the system resulting in an OOM message or a hang. To prevent this, we limit the amount of memory that the initial pool scan can consume. This change will, by default, use 1/16th of the ARC for scan I/Os to prevent running the system out of memory during import. Reviewed-by: Matt Ahrens <matt@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Serapheim Dimitropoulos <serapheim@delphix.com> Signed-off-by: George Wilson george.wilson@delphix.com External-issue: DLPX-65237 External-issue: DLPX-65238 Closes #9146
This commit is contained in:
committed by
Tony Hutter
parent
d38e4ee142
commit
628fd31d26
@@ -505,13 +505,13 @@ Default value: \fB1\fR.
|
||||
.sp
|
||||
.ne 2
|
||||
.na
|
||||
\fBspa_load_verify_maxinflight\fR (int)
|
||||
\fBspa_load_verify_shift\fR (int)
|
||||
.ad
|
||||
.RS 12n
|
||||
Maximum concurrent I/Os during the traversal performed during an "extreme
|
||||
rewind" (\fB-X\fR) pool import.
|
||||
Sets the maximum number of bytes to consume during pool import to the log2
|
||||
fraction of the target arc size.
|
||||
.sp
|
||||
Default value: \fB10000\fR.
|
||||
Default value: \fB4\fR.
|
||||
.RE
|
||||
|
||||
.sp
|
||||
|
||||
Reference in New Issue
Block a user