1PMEMPOOL-INFO(1)           PMDK Programmer's Manual           PMEMPOOL-INFO(1)
2
3
4

NAME

6       pmempool-info -- show information about persistent memory pool
7

SYNOPSIS

9              $ pmempool info [<options>] <file>
10

DESCRIPTION

12       The pmempool invoked with info command analyzes an existing pool creat‐
13       ed by PMDK libraries provided by file parameter.  The file can  be  ei‐
14       ther existing pool file, a part file or a poolset file.
15
16       The  main  task of this command is to print all usable information from
17       pool headers and user data in human readable format.  It  automatically
18       recognizes the pool type by parsing and analyzing the pool header.  The
19       recognition is done by checking the signature in the pool header.   The
20       main job of info command is to present internal data structures as they
21       are stored in file but not for checking consistency.  For this  purpose
22       there is the pmempool-check(1) command available.
23
24       The pmempool with info command analyzes pool file as long as it is pos‐
25       sible regarding correctness of  internal  meta-data  (correct  offsets,
26       sizes  etc.).   If  it is not possible to analyze the rest of the file,
27       pmempool exits with error code and prints appropriate error message.
28
29       Currently there is lack of interprocess synchronization for pool files,
30       so the info command should be invoked off-line.  Using pmempool on pool
31       file which may be modified by another process may  lead  to  unexpected
32       errors in pool file.
33
34       A  poolset  file passed to pmempool info may contain multiple replicas,
35       also remote ones, but pmempool currently does not read  any  data  from
36       remote  replicas.   It  prints  only a remote node address and a remote
37       replica descriptor.
38
39       pmempool info opens pool file in read-only mode so the file will remain
40       untouched after processing.
41
42       The  info command may collect and print basic statistics about data us‐
43       age.  The statistics are specific to the type of pool.  See  STATISTICS
44       section for details.
45
46       Although  the  pool  consistency is not checked by the info command, it
47       prints information about checksum errors and/or offsets errors.
48
49   Common options:
50       By default the info command of pmempool prints  information  about  the
51       most  important internal data structures from pool.  The particular set
52       of headers and meta-data depend on pool type.  The pool type is  recog‐
53       nized  automatically  and  appropriate  information is displayed in hu‐
54       man-readable format.
55
56       To force processing specified file(s) as desired pool type use  -f  op‐
57       tion  with  appropriate  name  of  pool type.  The valid names off pool
58       types are blk, log, obj or btt.  This option may  be  useful  when  the
59       pool header is corrupted and automatic recognition of pool type fails.
60
61       -f, --force blk|log|obj|btt
62
63       Force parsing pool as specified pool type.
64
65              NOTE:  By  default  only pool headers and internal meta-data are
66              displayed.  To display user data use -d option.  Using -r option
67              you  can  specify  number of blocks/bytes/data chunks or objects
68              using special text format.  See RANGE section for details.   The
69              range  refers to block numbers in case of pmem blk pool type, to
70              chunk numbers in case of pmem log pool type and to  object  num‐
71              bers in case of pmem obj pool type.  See EXAMPLES section for an
72              example of usage of these options.
73
74       -d, --data
75
76       Dump user data in hexadecimal format.  In case of pmem  blk  pool  type
77       data is dumped in blocks.  In case of pmem log pool type data is dumped
78       as a wholeor in chunks if -w option is used (See  Options  for  PMEMLOG
79       section for details).
80
81       -r, --range <range>
82
83       Range  of  blocks/data chunks/objects/zone headers/chunk headers/lanes.
84       See RANGE section for details about range format.
85
86       -n, --human
87
88       Print sizes in human-readable format with appropriate units (e.g.   4k,
89       8M, 16G)
90
91       -x, --headers-hex
92
93       Print  pool's internal data in mixed format which consists of hexadeci‐
94       mal dump of header's data and parsed format displayed in human-readable
95       format.  This allows to see how data is stored in file.
96
97       -s, --stats
98
99       Print pool's statistics.  See STATISTICS section for details.
100
101       -h, --help
102
103       Display help message and exit.
104
105   Options for PMEMLOG:
106       -w, --walk <size>
107
108       Use  this  option to walk through used data with fixed data chunk size.
109       See pmemlog_walk(3) in libpmemlog(7) for details.
110
111   Options for PMEMBLK:
112       By default the info command displays the pmemblk header and BTT  (Block
113       Translation Table) Info header in case of pmemblk pool type.
114
115       To  display  BTT  Map and/or BTT FLOG (Free List and Log) use -m and -g
116       options respectively or increase verbosity level.
117
118       In order to display BTT Info header backup use -B option.
119
120       -m, --map
121
122       Print BTT Map entries.
123
124       -g, --flog
125
126       Print BTT FLOG entries.
127
128       -B, --backup
129
130       Print BTT Info header backup.
131
132              NOTE: By default the info command displays all data blocks  when
133              -d  options  is  used.   However  it  is possible to skip blocks
134              marked with zero and/or error flags.  It  is  also  possible  to
135              skip blocks which are not marked with any flag.  Skipping blocks
136              has impact on blocks ranges (e.g.  display 10 blocks marked with
137              error flag in the range from 0 to 10000) and statistics.
138
139       -z, --skip-zeros
140
141       Skip blocks marked with zero flag.
142
143       -e, --skip-error
144
145       Skip blocks marked with error flag.
146
147       -u, --skip-no-flag
148
149       Skip blocks not marked with any flag.
150
151   Options for PMEMOBJ:
152       By  default  the info command displays pool header and pmemobj pool de‐
153       scriptor.  In order to print information about  other  data  structures
154       one of the following options may be used.
155
156       -l, --lanes [<range>]
157
158       Print information about lanes.  If range is not specified all lanes are
159       displayed.  The range can be specified using -r option right after  the
160       -l option.  See RANGE section for details about range format.
161
162       -R, --recovery
163
164       Print  information  about  only  those  lanes  which  require  recovery
165       process.  This option requires -l, --lanes option.
166
167       -S, --section tx,allocator,list
168
169       Print information only about specified sections from lane.  The section
170       types  may be separated by comma.  This option requires -l, --lanes op‐
171       tion.
172
173       -O, --object-store
174
175       Print information about all allocated objects.
176
177       -t, --types <range>
178
179       Print information about allocated objects only from specified range  of
180       type  numbers.   If -s, --stats option is specified the objects statis‐
181       tics refer to objects from specified range of type numbers.   This  op‐
182       tion  requires  -O,  --object-store  or -s, --stats options.  See RANGE
183       section for details about range format.
184
185       -E, --no-empty
186
187       Ignore empty lists of objects.  This option requires -O, --object-store
188       option.
189
190       -o, --root
191
192       Print information about a root object.
193
194       -A, --alloc-header
195
196       Print  object's  allocation  header.   This  option  requires -O, --ob‐
197       ject-store or -l, --lanes or -o, --root options.
198
199       -a, --oob-header
200
201       Print object's out of band header.   This  option  requires  -O,  --ob‐
202       ject-store or -l, --lanes or -o, --root options.
203
204       -H, --heap
205
206       Print information about pmemobj heap.  By default only a heap header is
207       displayed.
208
209       -Z, --zones
210
211       If the -H, --heap option is used, print information  about  zones  from
212       specified  range.   If the -O, --object-store option is used, print in‐
213       formation about objects only from specified range of zones.   This  op‐
214       tion  requires  -O,  --object-store, -H, --heap or -s, --stats options.
215       The range can be specified using -r option right after the  -Z  option.
216       See RANGE section for details about range format.
217
218       -C, --chunks [<range>]
219
220       If  the  -H, --heap option is used, print information about chunks from
221       specified range.  By default information about chunks of types  used  ,
222       free  and run are displayed.  If the -O, --object-store option is used,
223       print information about objects from specified range of chunks within a
224       zone.   This  option  requires  -O,  --object-store,  -H, --heap or -s,
225       --stats options.  The range can be specified using -r option right  af‐
226       ter the -C option.  See RANGE section for details about range format.
227
228       -T, --chunk-type used,free,run,footer
229
230       Print  only  specified  type(s)  of  chunks.  The multiple types may be
231       specified separated by comma.  This option requires -H, --heap and  -C,
232       --chunks options.
233
234       -b, --bitmap
235
236       Print  bitmap  of  used  blocks in chunks of type run.  This option re‐
237       quires -H, --heap and -C, --chunks options.
238
239       -p, --replica <num>
240
241       Print information from <num> replica.  The 0  value  means  the  master
242       pool file.
243

RANGE

245       Using  -r,  --range  option it is possible to dump only a range of user
246       data.  This section describes valid format of <range> string.
247
248       You can specify multiple ranges separated by commas.
249
250       <first>-<last>
251
252       All blocks/bytes/data chunks from <first> to <last> will be dumped.
253
254       -<last>
255
256       All blocks/bytes/data chunks up to <last> will be dumped.
257
258       <first>-
259
260       All blocks/bytes/data chunks starting from <first> will be dumped.
261
262       <number>
263
264       Only <number> block/byte/data chunk will be dumped.
265

STATISTICS

267       Below is the description of  statistical  measures  for  specific  pool
268       types.
269
270   PMEMLOG
271       · Total - Total space in pool.
272
273       · Available - Size and percentage of available space.
274
275       · Used - Size and percentage of used space.
276
277   PMEMBLK
278       · Total blocks - Total number of blocks in pool.
279
280       · Zeroed  blocks  -  Number  and  percentage of blocks marked with zero
281         flag.
282
283       · Error blocks - Number and percentage  of  blocks  marked  with  error
284         flag.
285
286       · Blocks  without any flag - Number and percentage of blocks not marked
287         with any flag.
288
289         NOTE: In case of pmemblk, statistics are evaluated for  blocks  which
290         meet  requirements  regarding:  range  of blocks (-r option), skipped
291         types of blocks (-z, -e, -u options).
292
293   PMEMOBJ
294       · Object store
295
296       · Number of objects - Total number of objects and number of objects per
297         type number.
298
299       · Number  of bytes - Total number of bytes and number of bytes per type
300         number.
301
302       · Heap
303
304       · Number of zones - Total number of zones in the pool.
305
306       · Number of used zones - Number of used zones in the pool.
307
308       · Zone The zone's statistics are presented for each zone separately and
309         the aggregated results from all zones.
310
311       · Number  of  chunks - Total number of chunks in the zone and number of
312         chunks of specified type.
313
314       · Chunks size - Total size of all chunks in the zone and sum  of  sizes
315         of chunks of specified type.
316
317       · Allocation classes
318
319       · Units - Total number of units of specified class.
320
321       · Used units - Number of used units of specified class.
322
323       · Bytes - Total number of bytes of specified class.
324
325       · Used bytes - Number of used bytes of specified class.
326
327       · Total bytes - Total number of bytes of all classes.
328
329       · Total used bytes - Total number of used bytes of all classes.
330

EXAMPLE

332              $ pmempool info ./pmemblk
333
334       Parse and print information about "pmemblk" pool file.
335
336              $ pmempool info -f blk ./pmempool
337
338       Force parsing "pmempool" file as pmemblk pool type.
339
340              $ pmempool info -d ./pmemlog
341
342       Print  information  and data in hexadecimal dump format for file "pmem‐
343       log".
344
345              $ pmempool info -d -r10-100 -eu ./pmemblk
346
347       Print information from "pmemblk" file.  Dump data  blocks  from  10  to
348       100, skip blocks marked with error flag and not marked with any flag.
349

SEE ALSO

351       pmempool(1),    libpmemblk(7),    libpmemlog(7),    libpmemobj(7)   and
352       <http://pmem.io>
353
354
355
356PMDK - pmem Tools version 1.3     2018-03-13                  PMEMPOOL-INFO(1)
Impressum