계산 프로그램의 메모리와 비례
1 #!/usr/bin/env python
2 # _*_ coding:UTF-8 _*_
3 # ,
4 # OS: Centos 6.7 Python: 2.7.6
5 # __author__:Dahlhin
6
7 import sys
8 import os
9 from subprocess import Popen,PIPE
10
11 def get_pid(program):
12 ' PID '
13 p = Popen(['pidof',program],stdout=PIPE,stderr=PIPE)
14 pids,stderrput = p.communicate()
15 # pids = p.stdout.read() #
16 # stderrput
17 if pids:
18 return pids.split()
19 else:
20 raise ValueError
21
22 def mem_calc(pids):
23 ' PIDs '
24 mem_total = 0
25 for pid in pids:
26 os.chdir('/proc/%s' % pid)
27 with open('status') as fd:
28 for line in fd:
29 if line.startswith('VmRSS'):
30 mem = line.strip().split()[1]
31 mem_total += int(mem)
32 break
33 return mem_total
34
35
36 def mem_percent(mem):
37 ' '
38 with open('/proc/meminfo') as fd:
39 for line in fd:
40 if line.startswith('MemTotal'):
41 total = line.strip().split()[1]
42 percent = (float(mem)/int(total)) * 100
43 return percent
44
45
46 def main():
47 try:
48 program = sys.argv[1]
49 pids = get_pid(program)
50 except IndexError as e:
51 sys.exit('%s need a Program name ' % __file__)
52 except ValueError as e:
53 sys.exit('%s not a Process Name or not Start' % program )
54 mem_total = mem_calc(pids)
55 percent = mem_percent(mem_total)
56 return program,mem_total,percent
57
58 if __name__ == '__main__':
59 program,mem_total,mem_percent=main()
60 print(' :%s
:%s
:%.2f%%'% (program,mem_total,mem_percent))
posted @
2017-05-05 12:00 Dahlhin 읽기(
...) 설명(
...) 모음 편집
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.