Exemple #1
0
    def memory(self):
        """
        Uses /proc/meminfo to obtain information on memory usage

        See `man 5 proc` for more information
        """
        mem_info = dict_from_file('/proc/meminfo')
        total = to_bytes(*mem_info['MemTotal:'].split())
        free = to_bytes(*mem_info['MemFree:'].split())
        buffers = to_bytes(*mem_info['Buffers:'].split())
        cached = to_bytes(*mem_info['Cached:'].split())

        available = free + buffers + cached
        pavailable = (available * 100) / total

        used = total - available
        pused = (used * 100) / total

        return {
            'total': total,
            'free': free,
            'buffers': buffers,
            'cached': cached,
            'available': available,
            'pavailable': pavailable,
            'used': used,
            'pused': pused,
        }
Exemple #2
0
    def memory(self):
        """
        Uses /proc/meminfo to obtain information on memory usage

        See `man 5 proc` for more information
        """
        mem_info = dict_from_file('/proc/meminfo')
        total = to_bytes(*mem_info['MemTotal:'].split())
        free = to_bytes(*mem_info['MemFree:'].split())
        buffers = to_bytes(*mem_info['Buffers:'].split())
        cached = to_bytes(*mem_info['Cached:'].split())

        available = free + buffers + cached
        pavailable = (available * 100) / total

        used = total - available
        pused = (used * 100) / total

        return {
            'total': total,
            'free': free,
            'buffers': buffers,
            'cached': cached,
            'available': available,
            'pavailable': pavailable,
            'used': used,
            'pused': pused,
        }
Exemple #3
0
    def test_returns_dict(self):
        ensure_contains_only_formatted_lines(FILE_PATH, 'key value')

        d = dict_from_file(FILE_PATH)

        assert_is_instance(d, dict)

        assert_less(0, len(d))
Exemple #4
0
    def test_returns_dict(self):
        ensure_contains_only_formatted_lines(FILE_PATH, 'key value')

        d = dict_from_file(FILE_PATH)

        assert_is_instance(d, dict)

        assert_less(0, len(d))
Exemple #5
0
    def swap_info(self):
        """
        Obtains information from /proc/vmstat

        See `man 5 proc` for more information
        """
        vmstat = dict_from_file('/proc/vmstat')

        return SwapInfo(read=int(vmstat['pswpin']),
                        write=int(vmstat['pswpout']))
Exemple #6
0
    def swap_info(self):
        """
        Obtains information from /proc/vmstat

        See `man 5 proc` for more information
        """
        vmstat = dict_from_file('/proc/vmstat')

        return SwapInfo(read=int(vmstat['pswpin']),
                        write=int(vmstat['pswpout']))
Exemple #7
0
    def _process_status(self, process_id):
        process_status_file_path = os.path.join('/proc', process_id, 'status')
        process_status = dict_from_file(process_status_file_path, ':\t')

        process_status['Uid'] = int(process_status['Uid'].split('\t')
                                    [0])  # only effective UID is needed
        process_status['State'] = PROCESS_STATE_MAP.get(
            process_status['State'], 'sleep')

        # VmSize field can be missing
        # See ${linux}/fs/proc/array.c:proc_pid_status for more information
        if 'VmSize' in process_status:
            process_status['VmSize'] = to_bytes(
                *process_status['VmSize'].split())
        else:
            process_status['VmSize'] = 0

        return process_status
Exemple #8
0
    def _process_status(self, process_id):
        process_status_file_path = os.path.join('/proc', process_id, 'status')
        process_status = dict_from_file(process_status_file_path, ':\t')

        process_status['Uid'] = int(
            process_status['Uid'].split('\t')[0]
        )  # only effective UID is needed
        process_status['State'] = PROCESS_STATE_MAP.get(
            process_status['State'], 'sleep'
        )

        # VmSize field can be missing
        # See ${linux}/fs/proc/array.c:proc_pid_status for more information
        if 'VmSize' in process_status:
            process_status['VmSize'] = to_bytes(
                *process_status['VmSize'].split())
        else:
            process_status['VmSize'] = 0

        return process_status
Exemple #9
0
    def test_lines_without_value_are_not_included(self):
        ensure_contains_only_formatted_lines(FILE_PATH, 'key')

        d = dict_from_file(FILE_PATH)

        assert_equal(0, len(d))
Exemple #10
0
    def test_lines_without_value_are_not_included(self):
        ensure_contains_only_formatted_lines(FILE_PATH, 'key')

        d = dict_from_file(FILE_PATH)

        assert_equal(0, len(d))