시스템 정보를 얻으려고합니다. 타사 패키지와 라이브러리 또는 최신 버전의 Python을 실행해야하는 모듈은 설치하지 않아야합니다. 이것은 아직 초기 dev에 있고 현재 우분투 10.04에서만 테스트되었지만 나중에 그걸 가지고 놀 것입니다. 메모리 사용에 대한 적절한 정보를 얻는 데 문제가 있습니다.파이썬 시스템 리소스 열거 형
지금까지 내가 무엇을 이것이다 :
#! /usr/bin/python
import platform
import multiprocessing
import os
print "\nEnumerating Available System Resources..."
print "\n++++++++++ OS Name and version ++++++++++"
print "Platform:", platform.system()
print "Kernel:", platform.release()
print "Distro:", platform.linux_distribution()
print "Architecture:", platform.architecture()
print "\n++++++++++ CPU Cores ++++++++++"
p = os.popen("ps aux|awk 'NR > 0{s +=$3};END{print s}'").read()
print "Cores:", multiprocessing.cpu_count(), '\nCPU Load:', p
print "\n++++++++++ System Memory ++++++++++\n"
def meminfo():
meminfo=dict()
with os.popen('cat /proc/meminfo') as f:
for line in f:
meminfo[line.split(':')[0]] = line.split(':')[1].strip()
return meminfo
if __name__=='__main__':
meminfo = meminfo()
print('Total Memory: {0}'.format(meminfo['MemTotal']))
print('Free Memory: {0}'.format(meminfo['MemFree']))
문제는 마지막 부분 I 적절한 메모리 통계를 얻을 수 있지만, 나는 또한 백분율 형식으로 "사용"부분을 추가 할 필요가 있다는 것입니다. 그래도 수학을 올바르게 얻는 방법을 알 수는 없습니다.
내가 작업하는 시스템 중 일부는 RAM에서 탭 아웃 될 수 있으므로 스크립트를 컴퓨터에 충돌시키지 않아서 RAM 비율을 평가하기 위해 여기에 뭔가를 추가해야하므로 CPU 사용률이 75 % 이상이고 RAM 잔량이 5 % 미만인 경우와 같은 특정 조건이 존재하는 경우 CPU 비율을 유지합니다. 나는이 기능들에 대한 통찰력을 원하지만, 지금 당면한 주요 관심사는 메모리 사용률을 얻는 것이다. 나는 몇 시간 동안이 일을하고 있었고 신선한 눈을 쓸 수있었습니다. 감사!
이것은 내가 게시 된 질문의 대한 답변하지 않습니다. 다른 도구 나 * nix cmd를 사용하고 싶지 않습니다. 나는 단순히 나의 이전 포스트에 추가를 찾고있다. 임계 값을 초과하는 경우 스크립트를 중지 할 수 있도록 얼마만큼의 RAM이 백분율로 사용되는지 만 필요합니다. 그것은 MemUsotal에서 MemFree를 뺀 다음이를 Percent로 변환하는 것과 같아야합니다. – user1675042
가혹한 것처럼 들리면 사과드립니다. 나는 그것을 읽었을 뿐이라고 생각하지 않았다. 내가 가지고있는 스크립트는 깨끗한 결과물을 가지고 있으며, 중학교의 일부가이 스크립트를 사용하기 때문에 그대로 유지하고 싶습니다. 속도를 높이는 데 도움이되는 손상된 서버 조사 스크립트의 시작입니다. 우리는 많은 서버를 가지고 있으며 시스템에서 패키지/소프트웨어를 설치하거나 제거 할 수 없습니다. 나는 그 대답을 고맙게 여긴다. 그러나 내가 찾고있는 것이 아니다. 고맙습니다. – user1675042
예, 정확한 질문에 답하지 않았습니다. 내 업데이트 답변을 참조하십시오.현재 코드의 문제점은'''meminfo'''는''' ''1343434 kb'''' 같은 것들, 즉 int로 직접 변환 될 수없는 문자열을 포함한다는 것입니다. – korylprince