Lines Matching +full:v +full:-
2 # SPDX-License-Identifier: CDDL-1.0
5 # For a definition of fields, or usage, use zarcstat -v
17 # but has since moved to the illumos-gate repository.
33 # or https://opensource.org/licenses/CDDL-1.0.
46 # Fields have a fixed width. Every interval, we fill the "v"
47 # hash with its corresponding value (v[field]=value) using calculate().
66 "time": [8, -1, "Time"],
252 v = {}
265 cmd = ("Usage: zarcstat [-havxp] [-f fields] [-o file] [-s string] [interval "
275 # Requires py-sysctl on FreeBSD
340 sys.stderr.write("\t -h : Print this help message\n")
341 sys.stderr.write("\t -a : Print all possible stats\n")
342 sys.stderr.write("\t -v : List all possible field headers and definitions"
344 sys.stderr.write("\t -x : Print extended stats\n")
345 sys.stderr.write("\t -z : Print zfetch stats\n")
346 sys.stderr.write("\t -f : Specify specific fields to print (see -v)\n")
347 sys.stderr.write("\t -o : Redirect output to the specified file\n")
348 sys.stderr.write("\t -s : Override default field separator with custom "
350 sys.stderr.write("\t -p : Disable auto-scaling of numerical fields\n")
352 sys.stderr.write("\tzarcstat -o /tmp/a.log 2 10\n")
353 sys.stderr.write("\tzarcstat -s \",\" -o /tmp/a.log 2 10\n")
354 sys.stderr.write("\tzarcstat -v\n")
355 sys.stderr.write("\tzarcstat -f time,hit%,dh%,ph%,mh% 1\n")
378 v = (s-int(pd))*(s-int(meta))/s
379 cur["mfu_data_target"] = v / 65536 * caches_size / 65536
380 v = (s-int(pm))*int(meta)/s
381 cur["mfu_metadata_target"] = v / 65536 * caches_size / 65536
382 v = int(pd)*(s-int(meta))/s
383 cur["mru_data_target"] = v / 65536 * caches_size / 65536
384 v = int(pm)*int(meta)/s
385 cur["mru_metadata_target"] = v / 65536 * caches_size / 65536
396 d[key] = cur[key] - prev[key]
414 if scale == -1:
422 width = sz - (0 if index == 0 else 1)
434 global v
438 fmt = lambda col: prettynum(cols[col][0], cols[col][1], v[col])
440 fmt = lambda col: str(v[col])
478 hdr_intr = lines - 3
527 if opt in ('-a', '--all'):
529 if opt in ('-x', '--extended'):
531 if opt in ('-o', '--outfile'):
534 if opt in ('-h', '--help'):
536 if opt in ('-v', '--verbose'):
538 if opt in ('-s', '--separator'):
541 if opt in ('-f', '--columns'):
544 if opt in ('-p', '--parsable'):
546 if opt in ('-z', '--zfetch'):
587 sys.stderr.write("Invalid column definition! -- %s\n" % invalid)
591 sys.stderr.write("Incompatible field specified! -- %s\n" %
613 global v
616 v = dict()
617 v["time"] = time.strftime("%H:%M:%S", time.localtime())
618 v["hits"] = d["hits"] / sint
619 v["iohs"] = d["iohits"] / sint
620 v["miss"] = d["misses"] / sint
621 v["read"] = v["hits"] + v["iohs"] + v["miss"]
622 v["hit%"] = 100 * v["hits"] / v["read"] if v["read"] > 0 else 0
623 v["ioh%"] = 100 * v["iohs"] / v["read"] if v["read"] > 0 else 0
624 v["miss%"] = 100 - v["hit%"] - v["ioh%"] if v["read"] > 0 else 0
626 v["dhit"] = (d["demand_data_hits"] + d["demand_metadata_hits"]) / sint
627 v["dioh"] = (d["demand_data_iohits"] + d["demand_metadata_iohits"]) / sint
628 v["dmis"] = (d["demand_data_misses"] + d["demand_metadata_misses"]) / sint
630 v["dread"] = v["dhit"] + v["dioh"] + v["dmis"]
631 v["dh%"] = 100 * v["dhit"] / v["dread"] if v["dread"] > 0 else 0
632 v["di%"] = 100 * v["dioh"] / v["dread"] if v["dread"] > 0 else 0
633 v["dm%"] = 100 - v["dh%"] - v["di%"] if v["dread"] > 0 else 0
635 v["ddhit"] = d["demand_data_hits"] / sint
636 v["ddioh"] = d["demand_data_iohits"] / sint
637 v["ddmis"] = d["demand_data_misses"] / sint
639 v["ddread"] = v["ddhit"] + v["ddioh"] + v["ddmis"]
640 v["ddh%"] = 100 * v["ddhit"] / v["ddread"] if v["ddread"] > 0 else 0
641 v["ddi%"] = 100 * v["ddioh"] / v["ddread"] if v["ddread"] > 0 else 0
642 v["ddm%"] = 100 - v["ddh%"] - v["ddi%"] if v["ddread"] > 0 else 0
644 v["dmhit"] = d["demand_metadata_hits"] / sint
645 v["dmioh"] = d["demand_metadata_iohits"] / sint
646 v["dmmis"] = d["demand_metadata_misses"] / sint
648 v["dmread"] = v["dmhit"] + v["dmioh"] + v["dmmis"]
649 v["dmh%"] = 100 * v["dmhit"] / v["dmread"] if v["dmread"] > 0 else 0
650 v["dmi%"] = 100 * v["dmioh"] / v["dmread"] if v["dmread"] > 0 else 0
651 v["dmm%"] = 100 - v["dmh%"] - v["dmi%"] if v["dmread"] > 0 else 0
653 v["phit"] = (d["prefetch_data_hits"] + d["prefetch_metadata_hits"]) / sint
654 v["pioh"] = (d["prefetch_data_iohits"] +
656 v["pmis"] = (d["prefetch_data_misses"] +
659 v["pread"] = v["phit"] + v["pioh"] + v["pmis"]
660 v["ph%"] = 100 * v["phit"] / v["pread"] if v["pread"] > 0 else 0
661 v["pi%"] = 100 * v["pioh"] / v["pread"] if v["pread"] > 0 else 0
662 v["pm%"] = 100 - v["ph%"] - v["pi%"] if v["pread"] > 0 else 0
664 v["pdhit"] = d["prefetch_data_hits"] / sint
665 v["pdioh"] = d["prefetch_data_iohits"] / sint
666 v["pdmis"] = d["prefetch_data_misses"] / sint
668 v["pdread"] = v["pdhit"] + v["pdioh"] + v["pdmis"]
669 v["pdh%"] = 100 * v["pdhit"] / v["pdread"] if v["pdread"] > 0 else 0
670 v["pdi%"] = 100 * v["pdioh"] / v["pdread"] if v["pdread"] > 0 else 0
671 v["pdm%"] = 100 - v["pdh%"] - v["pdi%"] if v["pdread"] > 0 else 0
673 v["pmhit"] = d["prefetch_metadata_hits"] / sint
674 v["pmioh"] = d["prefetch_metadata_iohits"] / sint
675 v["pmmis"] = d["prefetch_metadata_misses"] / sint
677 v["pmread"] = v["pmhit"] + v["pmioh"] + v["pmmis"]
678 v["pmh%"] = 100 * v["pmhit"] / v["pmread"] if v["pmread"] > 0 else 0
679 v["pmi%"] = 100 * v["pmioh"] / v["pmread"] if v["pmread"] > 0 else 0
680 v["pmm%"] = 100 - v["pmh%"] - v["pmi%"] if v["pmread"] > 0 else 0
682 v["mhit"] = (d["prefetch_metadata_hits"] +
684 v["mioh"] = (d["prefetch_metadata_iohits"] +
686 v["mmis"] = (d["prefetch_metadata_misses"] +
689 v["mread"] = v["mhit"] + v["mioh"] + v["mmis"]
690 v["mh%"] = 100 * v["mhit"] / v["mread"] if v["mread"] > 0 else 0
691 v["mi%"] = 100 * v["mioh"] / v["mread"] if v["mread"] > 0 else 0
692 v["mm%"] = 100 - v["mh%"] - v["mi%"] if v["mread"] > 0 else 0
694 v["arcsz"] = cur["size"]
695 v["size"] = cur["size"]
696 v["c"] = cur["c"]
697 v["mfu"] = d["mfu_hits"] / sint
698 v["mru"] = d["mru_hits"] / sint
699 v["mrug"] = d["mru_ghost_hits"] / sint
700 v["mfug"] = d["mfu_ghost_hits"] / sint
701 v["unc"] = d["uncached_hits"] / sint
702 v["eskip"] = d["evict_skip"] / sint
703 v["el2skip"] = d["evict_l2_skip"] / sint
704 v["el2cach"] = d["evict_l2_cached"] / sint
705 v["el2el"] = d["evict_l2_eligible"] / sint
706 v["el2mfu"] = d["evict_l2_eligible_mfu"] / sint
707 v["el2mru"] = d["evict_l2_eligible_mru"] / sint
708 v["el2inel"] = d["evict_l2_ineligible"] / sint
709 v["mtxmis"] = d["mutex_miss"] / sint
710 v["ztotal"] = (d["zfetch_hits"] + d["zfetch_future"] + d["zfetch_stride"] +
712 v["zhits"] = d["zfetch_hits"] / sint
713 v["zahead"] = (d["zfetch_future"] + d["zfetch_stride"]) / sint
714 v["zpast"] = d["zfetch_past"] / sint
715 v["zmisses"] = d["zfetch_misses"] / sint
716 v["zmax"] = d["zfetch_max_streams"] / sint
717 v["zfuture"] = d["zfetch_future"] / sint
718 v["zstride"] = d["zfetch_stride"] / sint
719 v["zissued"] = d["zfetch_io_issued"] / sint
720 v["zactive"] = d["zfetch_io_active"] / sint
723 v["cachessz"] = cur["caches_size"]
733 v[colname] = cur[fieldval[0] + statval[0]]
735 v[colname + "%"] = 100 * v[colname] / \
736 v[group["percent"]] if v[group["percent"]] > 0 else 0
740 v["l2hits"] = d["l2_hits"] / sint
741 v["l2miss"] = d["l2_misses"] / sint
742 v["l2read"] = v["l2hits"] + v["l2miss"]
743 v["l2hit%"] = 100 * v["l2hits"] / v["l2read"] if v["l2read"] > 0 else 0
745 v["l2miss%"] = 100 - v["l2hit%"] if v["l2read"] > 0 else 0
746 v["l2asize"] = l2asize
747 v["l2size"] = cur["l2_size"]
748 v["l2bytes"] = d["l2_read_bytes"] / sint
749 v["l2wbytes"] = d["l2_write_bytes"] / sint
751 v["l2pref"] = cur["l2_prefetch_asize"]
752 v["l2mfu"] = cur["l2_mfu_asize"]
753 v["l2mru"] = cur["l2_mru_asize"]
754 v["l2data"] = cur["l2_bufc_data_asize"]
755 v["l2meta"] = cur["l2_bufc_metadata_asize"]
756 v["l2pref%"] = 100 * v["l2pref"] / l2asize if l2asize > 0 else 0
757 v["l2mfu%"] = 100 * v["l2mfu"] / l2asize if l2asize > 0 else 0
758 v["l2mru%"] = 100 * v["l2mru"] / l2asize if l2asize > 0 else 0
759 v["l2data%"] = 100 * v["l2data"] / l2asize if l2asize > 0 else 0
760 v["l2meta%"] = 100 * v["l2meta"] / l2asize if l2asize > 0 else 0
762 v["grow"] = 0 if cur["arc_no_grow"] else 1
763 v["need"] = cur["arc_need_free"]
764 v["free"] = cur["memory_free_bytes"]
765 v["avail"] = cur["memory_available_bytes"]
766 v["waste"] = cur["abd_chunk_waste_size"]
795 count -= 1