Date: Fri, 8 Apr 2022 19:02:49 +0000
From: Dave Baukus <daveb@spectralogic.com>
To: "freebsd-fs@FreeBSD.org" <freebsd-fs@FreeBSD.org>
Subject: ZFS: OoM with very large kmem_cache_create("abd_chunk", ...) USED count
Message-ID: <0b29483d-114f-c48c-343d-b25e6374290d@spectralogic.com>
index | next in thread | raw e-mail
[-- Attachment #1 --]
On FreeBSD_stable13 I'm seeing multiple OoM crash dumps with very large adb_chunk
used count as reported by vmstat -z -M <crash dump> -N <kern>:
For example on a system with 128G memory:
vmstat -z -M <crash dump> -N <kern>m reports:
ITEM SIZE LIMIT USED FREE REQ FAILSLEEP XDOMAIN
...
abd_chunk: 4096, 0,22967817, 5657,7737623005, 0, 0,3345348454
...
Meanwhile ARC stats are reasonable:
arc_stats.arcstat_size: 68955842224
arc_stats.arcstat_c: 68107622992
arc_stats.arcstat_c_max: 68643903488
But, adbstat_struct_size is impossibly large:
abdstat_struct_size = {
name = "struct_size", '\000' <repeats 243 times>,
data_type = 4 '\004',
value = {
ui64 = 207162941552,
l = 207162941552,
ul = 207162941552,
}
},
abdstat_scatter_cnt = {
name = "scatter_cnt", '\000' <repeats 243 times>,
data_type = 4 '\004',
value = {
ui64 = 76786,
l = 76786,
}
},
abdstat_scatter_data_size = {
name = "scatter_data_size", '\000' <repeats 237 times>,
data_type = 4 '\004',
value = {
ui64 = 65734410752,
l = 65734410752,
}
},
abdstat_scatter_chunk_waste = {
name = "scatter_chunk_waste", '\000' <repeats 235 times>,
data_type = 4 '\004',
value = {
ui64 = 482816,
l = 482816,
}
},
abdstat_linear_cnt = {
name = "linear_cnt", '\000' <repeats 244 times>,
data_type = 4 '\004',
value = {
l = 9822,
ul = 9822,
}
},
abdstat_linear_data_size = {
name = "linear_data_size", '\000' <repeats 238 times>,
data_type = 4 '\004',
value = {
ui64 = 34973696,
l = 34973696,
}
}
=========
anyone seen anything similar ?
--
Dave Baukus
[-- Attachment #2 --]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<font face="monospace">On FreeBSD_stable13 I'm seeing multiple OoM crash dumps with very large adb_chunk<br>
used count as reported by vmstat -z -M <crash dump> -N <kern>:<br>
<br>
For example on a system with 128G memory:<br>
</font><font face="monospace"><font face="monospace">vmstat -z -M <crash dump> -N <kern>m reports:<br>
<br>
</font>ITEM SIZE LIMIT USED FREE REQ FAILSLEEP XDOMAIN<br>
...<br>
abd_chunk: 4096, 0,22967817, 5657,7737623005, 0, 0,3345348454<br>
...<br>
<br>
Meanwhile ARC stats are reasonable:<br>
arc_stats.arcstat_size: 68955842224<br>
arc_stats.arcstat_c: 68107622992<br>
arc_stats.arcstat_c_max: 68643903488<br>
<br>
But, adbstat_struct_size is impossibly large:<br>
<br>
abdstat_struct_size = {<br>
name = "struct_size", '\000' <repeats 243 times>,<br>
data_type = 4 '\004',<br>
value = {<br>
ui64 = 207162941552,<br>
l = 207162941552,<br>
ul = 207162941552,<br>
}<br>
},<br>
abdstat_scatter_cnt = {<br>
name = "scatter_cnt", '\000' <repeats 243 times>,<br>
data_type = 4 '\004',<br>
value = {<br>
ui64 = 76786,<br>
l = 76786,<br>
}<br>
},<br>
abdstat_scatter_data_size = {<br>
name = "scatter_data_size", '\000' <repeats 237 times>,<br>
data_type = 4 '\004',<br>
value = {<br>
ui64 = 65734410752,<br>
l = 65734410752,<br>
}<br>
},<br>
abdstat_scatter_chunk_waste = {<br>
name = "scatter_chunk_waste", '\000' <repeats 235 times>,<br>
data_type = 4 '\004',<br>
value = {<br>
ui64 = 482816,<br>
l = 482816,<br>
}<br>
},<br>
abdstat_linear_cnt = {<br>
name = "linear_cnt", '\000' <repeats 244 times>,<br>
data_type = 4 '\004',<br>
value = {<br>
l = 9822,<br>
ul = 9822,<br>
}<br>
},<br>
abdstat_linear_data_size = {<br>
name = "linear_data_size", '\000' <repeats 238 times>,<br>
data_type = 4 '\004',<br>
value = {<br>
ui64 = 34973696,<br>
l = 34973696,<br>
}<br>
}<br>
<br>
=========<br>
<br>
anyone seen anything similar ?<br>
</font>--
<pre class="moz-signature" cols="10000">Dave Baukus
</pre>
</body>
</html>
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0b29483d-114f-c48c-343d-b25e6374290d>
