mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
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 <behlendorf1@llnl.gov> Closes #1506
This commit is contained in:
committed by
Brian Behlendorf
parent
7634cd54db
commit
fb02fabf9b
+1
-1
@@ -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
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
bin_SCRIPTS = arcstat.py
|
||||
EXTRA_DIST = $(bin_SCRIPTS)
|
||||
+5
-19
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user