我想知道如何使用bash获取系统CPU使用率并以百分比形式显示它.
样本输出:
57%
Run Code Online (Sandbox Code Playgroud)
如果有一个以上的核心,如果可以计算平均百分比,那就太好了.
如何从Python获取可用和当前使用的内存?它需要是跨平台的,至少可以在Windows,Mac OS X和Linux上运行.
我想在我的应用程序中向用户报告他没有足够的内存可以继续进行下一步操作.
我需要在软件运行的环境下获取信息.python是否有用于此目的的库?
我想知道以下信息.
我正在使用wmi和python来跟踪在我的机器上运行的进程的行为.
from win32com.client import GetObject
wmi = GetObject('winmgmts:')
processes = wmi.InstancesOf('Win32_Process')
for process in processes:
print process.ProcessId, process.Name
Win32_Process有很多信息,但我没有看到任何跟踪CPU消耗的信息.窗口任务监视器显示此信息,所以我认为有可能得到它.
我认为WorkingSetSize属性给出了进程的内存消耗,但我可以看到与TaskMonitor给出的值不同.
如何获得给定流程的这两个值?
更新:任务监视器显示Win32_Process似乎不可用的PrivateWorkingSetSize.WorkingSetSize和PrivateWorkingSetSize有什么区别?
我希望我的python脚本能够使用所有可用的RAM而不是更多(出于效率原因).我可以通过只读取有限数量的数据来控制它,但我需要知道在运行时有多少RAM是免费的才能做到这一点.它将在各种Linux系统上运行.是否可以在运行时确定空闲RAM?
我有TensorFlow的内存泄漏.我提到Tensorflow:即使在关闭Session时内存泄漏?为了解决我的问题,我按照答案的建议,似乎解决了这个问题.但它在这里不起作用.
为了重新创建内存泄漏,我创建了一个简单的例子.首先,我使用这个函数(我在这里:如何在Python中获取当前的CPU和RAM使用?)来检查python进程的内存使用情况:
def memory():
import os
import psutil
pid = os.getpid()
py = psutil.Process(pid)
memoryUse = py.memory_info()[0]/2.**30 # memory use in GB...I think
print('memory use:', memoryUse)
Run Code Online (Sandbox Code Playgroud)
然后,每次调用该build_model函数时,内存的使用都会增加.
这是build_model具有内存泄漏的函数:
def build_model():
'''Model'''
tf.reset_default_graph()
with tf.Graph().as_default(), tf.Session() as sess:
tf.contrib.keras.backend.set_session(sess)
labels = tf.placeholder(tf.float32, shape=(None, 1))
input = tf.placeholder(tf.float32, shape=(None, 1))
x = tf.contrib.keras.layers.Dense(30, activation='relu', name='dense1')(input)
x1 = tf.contrib.keras.layers.Dropout(0.5)(x)
x2 = tf.contrib.keras.layers.Dense(30, activation='relu', name='dense2')(x1)
y = tf.contrib.keras.layers.Dense(1, activation='sigmoid', name='dense3')(x2)
loss = tf.reduce_mean(tf.contrib.keras.losses.binary_crossentropy(labels, y))
train_step = …Run Code Online (Sandbox Code Playgroud) 有没有办法在python中获取系统状态,例如可用内存量,正在运行的进程,cpu加载等等.我知道在linux上我可以从/ proc目录中获取它,但我想在unix和windows上也这样做.
在Python应用程序中,如何以跨平台的方式获取系统的RAM总量以及当前有多少RAM?
理想情况下,可用RAM的数量应该只考虑实际可以分配给Python进程的物理内存.
我正在使用python,并假设我有一些代码如下
example.py
import os, psutil
import MySQLdb as mdb
conn = mdb.connect(user='root', passwd='redhat', db='File_Data', host='localhost', charset="utf8")
file_path = "/home/local/user/Module/File_processing/part-file.txt"
p = psutil.Process(os.getpid())
cursor = conn.cursor()
for line in file_open:
result = line.split('\t')
query = "insert into PerformaceReport (campaignID, keywordID, keyword, avgPosition)"
query += " VALUES (%s,%s,'%s',%s)%(result[0],result[1],result[2],result[3])"
cursor.execute( query )
conn.commit()
print p.get_cpu_times()
print p.get_memory_percent()
Run Code Online (Sandbox Code Playgroud)
上面的代码从文本文件中读取数据并保存到数据库并且工作正常
我正在使用该命令运行该文件 python path/to/the/example.py
现在我要做的是找到/捕获以下三个值/信息
execution timepython脚本(example.py)用于读取数据并将数据保存到数据库的总量CPU utilization当python脚本(example.py)运行(执行)时Memory usage当python脚本(example.py)运行(执行)时我正试图找到一个巨大输入的单词模式.我正在为此目的使用字典,几个小时后程序崩溃了MemoryError.
我修改了程序.我通过MySQLdb创建了一个数据库,并在那里插入了值的pattern-index.因此,对于每个单词,我检查它是否在索引中,如果不是,我用值将其写入索引.问题是数据库方法太慢了.
我想知道是否有任何方法可以组合字典和数据库,例如:
if ram <90% usage:
seek into dict
append to dict
else:
if not (seek into dict):
seek into database
append to database
Run Code Online (Sandbox Code Playgroud)
使用字典用于输入100kb数据的相同目的需要约1.5秒
使用数据库进行相同的输入需要大约84秒
原始输入为16 GB.我不知道要处理多少钱.
python ×8
memory ×3
bash ×1
cpu ×1
cpu-usage ×1
database ×1
dictionary ×1
keras ×1
linux ×1
memory-leaks ×1
tensorflow ×1
unix ×1
windows ×1
wmi ×1
wxpython ×1