Hello everyone , I'm brother Chen ~
Today, I'd like to introduce a library that can obtain the current system information ——psutil
utilize psutil Library can get some information about the system , Such as cpu, Memory usage, etc , This allows you to view the current system usage , Collecting these information in real time can achieve the purpose of real-time monitoring system .
psutil library
psutil It's easy to install
pip install psutil
psutil What system information can the library get ?
psutil What are the functions
1. Memory usage
2. Disk usage
3.cpu Usage rate
4. The network interface sends and receives traffic
5. Get the current network speed
6. The current process of the system
...
The following is a demonstration through a specific code case
Memory usage
import psutil
# Memory
mem = psutil.virtual_memory()
# Total system memory
zj = float(mem.total) / 1024 / 1024 / 1024
# The system has used memory
ysy = float(mem.used) / 1024 / 1024 / 1024
# System free memory
kx = float(mem.free) / 1024 / 1024 / 1024
print(' Total system memory :%d.4GB' % zj)
print(' The system has used memory :%d.4GB' % ysy)
print(' System free memory :%d.4GB' % kx)
Gets the total memory of the current system , Used memory , And free memory
The unit of memory obtained here is bytes , So you need to divide by 1024 To G, The same is true below, so I won't repeat the explanation .
Get the system cpu Information
# Show cpu All logical information
print(psutil.cpu_times(percpu=True))
# see cpu Information of logical number
print(u" Logic CPU Number : %s" % psutil.cpu_count())
# see cpu Information about the number of Physics
print(u" Physics CPU Number : %s" % psutil.cpu_count(logical=False))
#CPU The usage rate of
cpu = (str(psutil.cpu_percent(1))) + '%'
print(u"cup Usage rate : %s" % cpu)
obtain cpu Information , And this machine cpu Number ( Including logic cpu Numbers and physics cpu Count ), Current cpu Usage rate ( every other 1 Seconds to get once , Get and view real-time cpu Usage )
System disk usage
part = psutil.disk_partitions()
for i in part:
print(i)
dk = psutil.disk_usage('/')
print(dk)
# Total disk
total = dk.total / 1024 / 1024 / 1024
used = dk.used / 1024 / 1024 / 1024
free = dk.free / 1024 / 1024 / 1024
print(' Total system disks :%d.3GB' % total)
print(' The system is already using disk :%d.3GB' % used)
print(' System free disk :%d.3GB' % free)
print(u" Disk usage : %s%%" % dk.percent)
# Get the total number of disks io Number , Read and write information
print(psutil.disk_io_counters())
The first few lines are the disk information that the current system can access
Among them the first 1 That's ok mountpoint='/', Indicates the current local default disk
Among them the first 6 That's ok mountpoint='/Volumes/Extreme SSD', Indicates an external solid state mobile hard disk
Here is the local disk mountpoint='/' For example , Check disk usage ( Total capacity , Already used , Free capacity , Usage rate )
The meaning of each field in the last line is as follows :
"""
read_count read IO Count
write_count Write IO Count
read_bytes read IO Number of bytes
write_bytes Write IO Number of bytes
read_time Disk read time
write_time Disk write time
"""
Get the system network card information
# Get total network IO Information
print(psutil.net_io_counters())
# Send packet
print(" Send data bytes :", psutil.net_io_counters().bytes_sent,"bytes")
# Receive packets
print(" Receive data bytes :",psutil.net_io_counters().bytes_recv,"bytes")
# Output information of each network interface
net_counter = psutil.net_io_counters(pernic=True)
for i in net_counter:
print(" network card :"+i+" , Network card information :",net_counter[i])
You can get which network cards exist in the current machine , And how much traffic is sent and received
Check whether the local network card is consistent in the terminal
mac and linux System commands :ifconfig
window System commands :ipconfig
Some screenshots are as follows :
You can see that the network card data obtained by the program is consistent with that obtained by the local terminal
Get the current network speed
Obtain the current network speed by obtaining the traffic sent and received by the network card through the above program
s1 = psutil.net_io_counters(pernic=True)['en0']
time.sleep(1)
s2 = psutil.net_io_counters(pernic=True)['en0']
result = s2.bytes_recv - s1.bytes_recv
print(str('%d' % (result / 1024)) + 'kb/s')
In code ['en0'] Said to get en0 Network card data , Because chenge's network card is en0
Finally, you can see the current network speed
Every 1 Seconds to execute the code can achieve real-time access to network speed
Other features
# System Up Time
# Convert to natural time format
print(datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S"))
# Get the current system user login information
users = psutil.users()
for i in users:
print(i)
You can get the startup time of this machine , And the current users
Today's article is here
If you have any questions, please leave a message below to discuss ~
Last
1. This article introduces in detail python adopt psutil Get system information ( Memory , disk ,cpu etc. )
2. This article is only for readers to learn and use , Not for any other purpose !
Python Collect and monitor the system data ——psutil More articles about
- Python Data network collection 5-- Handle Javascript Redirection
Python Data network collection 5-- Handle Javascript Redirection up to now , The only way we can communicate with the web server , Just send out HTTP Request to get the page . Some pages , We don't need to ask for it alone , You can interact with the web server ( Send and receive messages ...
- [Python monitor ]psutil Simple use of modules
Easy to install pip install psutil The official website address is https://pythonhosted.org/psutil/ ( The document has detailed api) github The address is https://githu ...
- python Data analysis 4 Automatic data collection
1 The importance of data collection Data collection is the basis of data mining , No data , There's no point in digging . A lot of times , How many data sources do we have , How much data , And the quality of the data , Will determine what results we will produce 2 Four types of acquisition methods 3 How to use open ...
- Why do you say Python It's a big data full stack development language
Welcome to my personal website < Liu Jiang's blog and tutorial >:www.liujiangblog.com Mainly share Python And Django Tutorials and related blogs communication QQ Group :453131687 Link to the original text h ...
- python+Django Realization Nagios Add monitoring items automatically
Recently, a number of machines have been installed in the machine room ( Yes 100 Around the table ), Need to use Nagios Monitor this batch of machines . The leader requires two days to complete the monitoring of all hosts . From the original experience , It can't be finished in two days . What to do with that ? As I thought before , It must be nag ...
- Big data learning —— Collect files to HDFS
Collect requirements : For example, business system use log4j Generated logs , The content of the log keeps increasing , You need to collect the data added to the log file in real time hdfs According to the demand , First, define the following 3 The big thing l Acquisition source , namely source—— Monitor file content updates : ...
- python An instance method for obtaining system memory usage information
psutil It's a cross platform library (http://code.google.com/p/psutil/), It is easy to get the system running process and system utilization ( Include CPU. Memory . disk . Network, etc ) Information . It is mainly used in system monitoring , ...
- C#+HtmlAgilityPack+XPath Take you to collect data ( Take collecting weather data as an example )
First contact HtmlAgilityPack Is in 5 Years ago , Some accidents , Let me temporarily transfer from technical department to Sales Department , Responsible for setting up some processes and looking for potential customers , Finally, I found a lot of customer information in Alibaba , Very comprehensive , At first it was copied manually to Excel, ...
- Windows Next Python Read GRIB data
I wrote an article before < be based on Python Of GRIB Data visualization > The article , Many bloggers asked me in the comments Windows How to read under the system GRIB data , Let me make a statement here . One . stay Windows Next Python Why can't ...
- Python Introduction to cloud system development —— frame foundation
Django frame foundation This is what I learned from Songtian teacher of Beijing University of technology <Python Introduction to cloud system development > Course notes , Here I would like to thank the teacher for his wonderful explanation and guidance . 1.Django Introduction and installation Django It's a ...
Random recommendation
- Codeforces CF#628 Education 8 D. Magic Numbers
D. Magic Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Combox Control initialization techniques
occasionally combox Drop down items are fixed , No need to do data binding , But if you use the string set editor directly ,SelectedValue It doesn't seem to work . So simply encapsulate /// <summary> ...
- C++ Read 、 Rotate and save bmp Image file programming
I've met... Before bmp Reading and writing of documents . This blog is very good , Other content written is also worth learning . Reference resources :http://blog.csdn.net/xiajun07061225/article/details/6633938 learn ...
- public void Delete(List EntityList) where T : class, new() Type parameter constraint
After searching, it is found that this is a type parameter constraint ,.NET There are five types of type parameter constraints supported : where T : struct | T It has to be a structure type where T : class T Must be a class (class) type whe ...
- HDU5029--Relief grain ( The tree chain splits + Line segment tree )
The question :n A rootless tree of points ,m operations , For operation x y z, Express x To y On the way Each point Add one more z Numbers , Can be added repeatedly . Finally, output each point The number added the most times , If no output 0. Naked tree chain dissection ...
- The first 21 Yue di 6 God zhihu How to use 3 Month zero basic machine learning
1. We should remember , The established fact must have its reason , If we can't understand it , I'm afraid we have to find the reason from ourselves . If you trade stocks , please remember , If the forecast doesn't match the market , It's the prediction that's wrong , Not the market https://www.cnblogs.co ...
- Forth Memory layout
body, table{font-family: Microsoft YaHei } table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Nginx URL No slash after 301 Redirect
There is a problem with development today , In fact, there was this problem before , But I never paid attention to , If you encounter problems in today's test, solve them . Problem situation : When I ask http://admindev.jingruiauto.com/store/views ...
- modify redis Persistent paths and logs route , modify kafka Log path
redis Modify persistence path and log path vim redis.conf logfile /data/redis_cache/logs/redis.log # Log path dir /data/redis_cach ...
- use C Read system plaintext ( Source code attached )
Get a good thing from a good friend System plaintext can be read Please use vc++ 6.0 compile #include <windows.h> #include <stdio.h> // // Vsbat[ ...