FreeBSD Bugzilla – Attachment 149947 Details for
Bug 195460
[patch] systat to display zfs arc cache status/info
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
systat -zarc
zarc.diff (text/plain), 3.37 KB, created by
ota
on 2014-11-28 03:58:18 UTC
(
hide
)
Description:
systat -zarc
Filename:
MIME Type:
Creator:
ota
Created:
2014-11-28 03:58:18 UTC
Size:
3.37 KB
patch
obsolete
>Index: Makefile >=================================================================== >--- Makefile (revision 274372) >+++ Makefile (working copy) >@@ -6,7 +6,7 @@ > PROG= systat > SRCS= cmds.c cmdtab.c devs.c fetch.c iostat.c keyboard.c main.c \ > netcmds.c netstat.c pigs.c swap.c icmp.c \ >- mode.c ip.c tcp.c \ >+ mode.c ip.c tcp.c zarc.c \ > vmstat.c convtbl.c ifcmds.c ifstat.c > > .if ${MK_INET6_SUPPORT} != "no" >Index: cmdtab.c >=================================================================== >--- cmdtab.c (revision 274372) >+++ cmdtab.c (working copy) >@@ -75,6 +75,9 @@ > { "ifstat", showifstat, fetchifstat, labelifstat, > initifstat, openifstat, closeifstat, cmdifstat, > 0, CF_LOADAV }, >+ { "zarc", showzarc, fetchzarc, labelzarc, >+ initzarc, openzarc, closezarc, 0, >+ resetzarc, CF_ZFSARC }, > { NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0 } > }; > struct cmdtab *curcmd = &cmdtab[0]; >Index: extern.h >=================================================================== >--- extern.h (revision 274372) >+++ extern.h (working copy) >@@ -163,3 +163,14 @@ > void status(void); > void suspend(int); > char *sysctl_dynread(const char *, size_t *); >+ >+#define SYSTAT_CMD(name) \ >+ void close ## name(WINDOW *); \ >+ void fetch ## name(void); \ >+ int init ## name(void); \ >+ void label ## name(void); \ >+ WINDOW *open ## name(void); \ >+ void reset ## name(void); \ >+ void show ## name(void) >+ >+SYSTAT_CMD( zarc ); >Index: main.c >=================================================================== >--- main.c (revision 274372) >+++ main.c (working copy) >@@ -188,6 +188,11 @@ > "/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10"); > mvaddstr(1, 5, "Load Average"); > } >+ if (curcmd->c_flags & CF_ZFSARC) { >+ mvaddstr(0, 20, >+ " Total MFU MRU Anon Hdr L2Hdr Other"); >+ mvaddstr(1, 5, "ZFS ARC "); >+ } > (*curcmd->c_label)(); > #ifdef notdef > mvprintw(21, 25, "CPU usage on %s", hostname); >@@ -221,8 +226,33 @@ > if (j > 50) > wprintw(wload, " %4.1f", avenrun[0]); > } >+ if (curcmd->c_flags & CF_ZFSARC) { >+ uint64_t arc[7] = {}; >+ size_t size = sizeof(arc[0]); >+ if (sysctlbyname("kstat.zfs.misc.arcstats.size", >+ &arc[0], &size, NULL, 0) == 0 ) { >+ GETSYSCTL("vfs.zfs.mfu_size", arc[1]); >+ GETSYSCTL("vfs.zfs.mru_size", arc[2]); >+ GETSYSCTL("vfs.zfs.anon_size", arc[3]); >+ GETSYSCTL("kstat.zfs.misc.arcstats.hdr_size", arc[4]); >+ GETSYSCTL("kstat.zfs.misc.arcstats.l2_hdr_size", arc[5]); >+ GETSYSCTL("kstat.zfs.misc.arcstats.other_size", arc[6]); >+ wmove(wload, 0, 0); wclrtoeol(wload); >+ for (i = 0 ; i < sizeof(arc) / sizeof(arc[0]) ; i++) { >+ if (arc[i] > 10llu * 1024 * 1024 * 1024 ) { >+ wprintw(wload, "%7lluG", arc[i] >> 30); >+ } >+ else if (arc[i] > 10 * 1024 * 1024 ) { >+ wprintw(wload, "%7lluM", arc[i] >> 20); >+ } >+ else { >+ wprintw(wload, "%7lluK", arc[i] >> 10); >+ } >+ } >+ } >+ } > (*curcmd->c_refresh)(); >- if (curcmd->c_flags & CF_LOADAV) >+ if (curcmd->c_flags & (CF_LOADAV |CF_ZFSARC)) > wrefresh(wload); > wrefresh(wnd); > move(CMDLINE, col); >Index: systat.h >=================================================================== >--- systat.h (revision 274372) >+++ systat.h (working copy) >@@ -54,6 +54,7 @@ > > #define CF_INIT 0x1 /* been initialized */ > #define CF_LOADAV 0x2 /* display w/ load average */ >+#define CF_ZFSARC 0x4 /* display w/ ZFS cache usage */ > > #define TCP 0x1 > #define UDP 0x2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 195460
:
149947
|
150324