* Modified kstat_update() to read arcstats from proc.
* Fix shebang.
* Added Makefile.am entries for arcstat.py
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1506
SUBDIRS = zfs zpool zdb zhack zinject zstreamdump ztest zpios
SUBDIRS = zfs zpool zdb zhack zinject zstreamdump ztest zpios
-SUBDIRS += mount_zfs fsck_zfs zvol_id vdev_id
+SUBDIRS += mount_zfs fsck_zfs zvol_id vdev_id arcstat
--- /dev/null
+bin_SCRIPTS = arcstat.py
+EXTRA_DIST = $(bin_SCRIPTS)
#
# Print out ZFS ARC Statistics exported via kstat(1)
# For a definition of fields, or usage, use arctstat.pl -v
#
# Print out ZFS ARC Statistics exported via kstat(1)
# For a definition of fields, or usage, use arctstat.pl -v
import copy
from decimal import Decimal
import copy
from decimal import Decimal
-from subprocess import Popen, PIPE
from signal import signal, SIGINT
cols = {
from signal import signal, SIGINT
cols = {
def kstat_update():
global kstat
def kstat_update():
global kstat
- p = Popen("/sbin/sysctl -q 'kstat.zfs.misc.arcstats'", stdin=PIPE,
- stdout=PIPE, stderr=PIPE, shell=True, close_fds=True)
- p.wait()
-
- k = p.communicate()[0].split('\n')
- if p.returncode != 0:
- sys.exit(1)
+ k = [line.strip() for line in open('/proc/spl/kstat/zfs/arcstats')]
kstat = {}
for s in k:
if not s:
continue
kstat = {}
for s in k:
if not s:
continue
- s = s.strip()
-
- name, value = s.split(':')
- name = name.strip()
- value = value.strip()
-
- parts = name.split('.')
- n = parts.pop()
-
- kstat[n] = Decimal(value)
+ name, unused, value = s.split()
+ kstat[name] = Decimal(value)
cmd/fsck_zfs/Makefile
cmd/zvol_id/Makefile
cmd/vdev_id/Makefile
cmd/fsck_zfs/Makefile
cmd/zvol_id/Makefile
cmd/vdev_id/Makefile
module/Makefile
module/avl/Makefile
module/nvpair/Makefile
module/Makefile
module/avl/Makefile
module/nvpair/Makefile
%doc AUTHORS COPYRIGHT DISCLAIMER
%doc OPENSOLARIS.LICENSE README.markdown
%{_sbindir}/*
%doc AUTHORS COPYRIGHT DISCLAIMER
%doc OPENSOLARIS.LICENSE README.markdown
%{_sbindir}/*
%{_libdir}/*.so.1*
%{_mandir}/man1/*
%{_mandir}/man5/*
%{_libdir}/*.so.1*
%{_mandir}/man1/*
%{_mandir}/man5/*