Download raw body.
vmstat -m columns
On Tue, May 20, 2025 at 07:43:12AM +0200, Claudio Jeker wrote:
> On Mon, May 19, 2025 at 11:06:31PM -0400, Ted Unangst wrote:
> > vmstat -m output for malloc buckets has become unreadable.
>
> I agree. Also please do not test this on amd64 (that system is KVA
> challanged and can not scale as much as e.g. fat sparc64 systems).
>
> > Memory statistics by type Type Kern
> > Type InUse MemUse HighUse Limit Requests Limit Size(s)
> > devbuf 5076 17585K 18347K219874K 9164 0 16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288
> > pcb 17 13K 13K219874K 17 0 16,32,1024
> > rtable 58 2K 3K219874K 270 0 16,32,64,128,256
> >
> > What do the words "Type Kern" in the first header mean?
>
> I think they belong to the value below. As in Type Limit and Kern Size
> At least for limit it makes sense since there are two columns using Limit.
>
> > The first column is ragged, making it hard to read. Text should be left
> > aligned.
> > The limit column has exploded.
> >
> > I think this is an improvement. I kept one space on the left, so it's
> > easier to see when lines wrap.
> >
> > Memory statistics by type
> > Type InUse MemUse HighUse Limit Requests Limit Size(s)
> > devbuf 5074 17557K 18347K 219874K 9210 0 16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288
> > pcb 17 13K 13K 219874K 17 0 16,32,1024
> > rtable 58 2K 3K 219874K 273 0 16,32,64,128,256
>
> I like this output a lot better.
Forgot to mention, should we use megabytes for Limit instead?
OK claudio@
> > Index: vmstat.c
> > ===================================================================
> > RCS file: /home/cvs/src/usr.bin/vmstat/vmstat.c,v
> > diff -u -p -r1.159 vmstat.c
> > --- vmstat.c 10 Mar 2025 19:52:57 -0000 1.159
> > +++ vmstat.c 20 May 2025 03:01:45 -0000
> > @@ -854,14 +854,13 @@ domem(void)
> > printf("\n");
> > }
> >
> > + (void)printf("\nMemory statistics by type\n");
> > (void)printf(
> > - "\nMemory statistics by type Type Kern\n");
> > - (void)printf(
> > -" Type InUse MemUse HighUse Limit Requests Limit Size(s)\n");
> > +" Type InUse MemUse HighUse Limit Requests Limit Size(s)\n");
> > for (i = 0, ks = &kmemstats[0]; i < M_LAST; i++, ks++) {
> > if (ks->ks_calls == 0)
> > continue;
> > - (void)printf("%14s%6ld%6ldK%7ldK%6ldK%9ld%5u",
> > + (void)printf(" %-13s%6ld%6ldK%7ldK%8ldK%9ld%6u",
> > kmemnames[i] ? kmemnames[i] : "undefined",
> > ks->ks_inuse, (ks->ks_memuse + 1023) / 1024,
> > (ks->ks_maxused + 1023) / 1024,
> > @@ -872,7 +871,7 @@ domem(void)
> > if ((ks->ks_size & j) == 0)
> > continue;
> > if (first)
> > - printf(" %d", j);
> > + printf(" %d", j);
> > else
> > printf(",%d", j);
> > first = 0;
> >
>
> --
> :wq Claudio
>
--
:wq Claudio
vmstat -m columns