Python Displaying system information using psutil

Click For Summary
The discussion centers around troubleshooting issues with a Python script using the psutil library to gather system information. The initial problem involved an AttributeError indicating that the 'Process' object lacks the method 'get_memory_info'. This was resolved by switching to the correct method, 'memory_info()', which is part of the psutil library. After resolving the initial error, the user encountered another issue where the CPU utilization reported as zero. The user provided code snippets that display memory usage, disk usage, and CPU percentage, but the CPU utilization remains at zero despite running a sorting function on 1000 elements. The output shows memory usage and disk statistics but does not reflect any CPU activity. The user seeks guidance on how to resolve the CPU utilization issue.
zak100
Messages
462
Reaction score
11
TL;DR
I am trying to display system information. I found some commands but I am getting a sytax error
Hi,
I am getting following error message:
Traceback (most recent call last):
File "/home/zulfi/PycharmProjects/Classes/psutilPrintInfo.py", line 31, in <module>
obj_Counting_SysInfo.main()
File "/home/zulfi/PycharmProjects/Classes/psutilPrintInfo.py", line 27, in main
self.system_info()
File "/home/zulfi/PycharmProjects/Classes/psutilPrintInfo.py", line 16, in system_info
mem = process.get_memory_info()[0] / float(2 ** 30) # memory in GB
AttributeError: 'Process' object has no attribute 'get_memory_info'

I have written the following code which should display the system information of a simple program which I am running as a function:
Python:
import psutil

import osclass Counting_SysInfo:

    def __init__(self, i):

        self.i = i    def Print_Numbers(self):

        for i in range(50):

            print (i)    def system_info(self):

        # return the memory usage in MB

        self.Print_Numbers()

        process = psutil.Process(os.getpid())

        mem = process.get_memory_info()[0] / float(2 ** 30)  # memory in GB

        cpu = process.cpu_percent() / psutil.cpu_count()

        disk = process.disk_usage(part.mountpoint).percent  # https://github.com/giampaolo/psutil/blob/master/scripts/disk_usage.py

        vMem = int(process.virtual_memory().available)

        print(process.memory_info().rss)  # in bytes

        RSS = process.memory_info().rss

        # https://stackoverflow.com/questions/17990227/whats-the-unit-of-rss-in-psutil-process-get-memory-info

        pageFaults = process.memory_info().pfaults  # https://readthedocs.org/projects/giamptest/downloads/pdf/latest/

        print("mem= ", mem, "cpu= ", cpu, 'disk= ',disk, "VMem= ", vMem, "RSS= ", RSS, "page faults=", pageFaults )    def main(self):

        self.system_info()if __name__ == "__main__":

    obj_Counting_SysInfo = Counting_SysInfo(10)

    obj_Counting_SysInfo.main()

Somebody please guide me how to solve this problem.

Zulfi.
 
Technology news on Phys.org
Looking at the documentation for the Process class in psutil, there is no member named get_memory_info, which is exactly what the error message says. The Process class apparently has a member named memory_info().
 
  • Like
Likes sysprog and pbuk
Hi,
Thanks, I solved the above but I am getting cpu utilization zero.

Code:
def systeminfo(self):
        print("memory usage=", psutil.Process(os.getpid()).memory_info()[0])
        print(psutil.disk_usage('/'))
        print(psutil.Process(os.getpid()).cpu_percent(interval=1))
        print("virtual mem= ", psutil.virtual_memory().available)
        # print(psutil.Process(os.getpid()).memory_info().pfaults)
        print("rss=", psutil.Process(os.getpid()).memory_info().rss)
        self.selectionSort()
        print(psutil.Process(os.getpid()).cpu_percent(interval=1))    def main(self):
        self.generate1000_5digit_RandomNum()
        self.systeminfo()if __name__ == "__main__":
    objSSSort = SSSort(1000)
    objSSSort.main()

I am trying with 1000 elements in the sorting list:

Following is one portion of my output:
memory usage= 15269888
sdiskusage(total=982900588544, used=141417086976, free=791483416576, percent=15.2)
0.0
virtual mem= 12050067456
rss= 15269888
(0, 10000)
Somebody please guide me.

Zulfi.
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...