HEX
Server: Apache/2.4.6 (CentOS) PHP/5.6.39
System: Linux izj6c6ukj0hyugxsgmuxz3z 3.10.0-514.6.2.el7.x86_64 #1 SMP Thu Feb 23 03:04:39 UTC 2017 x86_64
User: root (0)
PHP: 5.6.39
Disabled: NONE
Upload Files
File: //usr/share/dstat/dstat_dstat_ctxt.py
### Author: Dag Wieers <dag$wieers,com>

class dstat_plugin(dstat):
    """
    Provide Dstat's number of voluntary and involuntary context switches.

    This plugin provides a unique view of the number of voluntary and
    involuntary context switches of the Dstat process itself. It may help
    to vizualise the performance of Dstat and its selection of plugins.
    """
    def __init__(self):
        self.name = 'contxt sw'
        self.vars = ('voluntary', 'involuntary', 'total')
        self.type = 'd'
        self.width = 3
        self.scale = 100

    def extract(self):
        res = resource.getrusage(resource.RUSAGE_SELF)

        self.set2['voluntary'] = float(res.ru_nvcsw)
        self.set2['involuntary'] = float(res.ru_nivcsw)
        self.set2['total'] = (float(res.ru_nvcsw) + float(res.ru_nivcsw))

        for name in self.vars:
            self.val[name] = (self.set2[name] - self.set1[name]) * 1.0 / elapsed

        if step == op.delay:
            self.set1.update(self.set2)

# vim:ts=4:sw=4:et