diff options
author | Christ Schlacta <[email protected]> | 2013-06-06 21:33:01 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2013-06-18 15:43:15 -0700 |
commit | fb02fabf9b8045d6a1ddedf3f79171f69633162d (patch) | |
tree | 671f27d97396973fbc0c2b8775587eda8213b233 /cmd | |
parent | 7634cd54db25a69e00aaab6448ad710441bd8e7d (diff) |
Modified arcstat.py to run on linux
* Modified kstat_update() to read arcstats from proc.
* Fix shebang.
* Added Makefile.am entries for arcstat.py
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #1506
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/Makefile.am | 2 | ||||
-rw-r--r-- | cmd/arcstat/Makefile.am | 2 | ||||
-rwxr-xr-x | cmd/arcstat/arcstat.py | 24 |
3 files changed, 8 insertions, 20 deletions
diff --git a/cmd/Makefile.am b/cmd/Makefile.am index 1a51ddcbc..bad1af63e 100644 --- a/cmd/Makefile.am +++ b/cmd/Makefile.am @@ -1,2 +1,2 @@ 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 diff --git a/cmd/arcstat/Makefile.am b/cmd/arcstat/Makefile.am new file mode 100644 index 000000000..802b8e1d9 --- /dev/null +++ b/cmd/arcstat/Makefile.am @@ -0,0 +1,2 @@ +bin_SCRIPTS = arcstat.py +EXTRA_DIST = $(bin_SCRIPTS) diff --git a/cmd/arcstat/arcstat.py b/cmd/arcstat/arcstat.py index fcfdbb832..e01dd8b4c 100755 --- a/cmd/arcstat/arcstat.py +++ b/cmd/arcstat/arcstat.py @@ -1,4 +1,4 @@ -#!/usr/local/bin/python +#!/usr/bin/python # # Print out ZFS ARC Statistics exported via kstat(1) # For a definition of fields, or usage, use arctstat.pl -v @@ -51,7 +51,6 @@ import re import copy from decimal import Decimal -from subprocess import Popen, PIPE from signal import signal, SIGINT cols = { @@ -149,33 +148,20 @@ def usage(): 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')] if not k: sys.exit(1) + del k[0:2] 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) def snap_stats(): |