xiaodouya33 发表于 2018-8-14 09:27:00

python 获取linux的性能信息

  python 获取linux的内存信息
  1、安装psutil源码
  https://pypi.python.org/pypi?:action=display&name=psutil#downloads
  找到psutil-5.2.2.tar.gz 点击即可下载
  shell # tar xzvf psutil-5.2.2.tar.gz
  shell # cd psutil-5.2.2
  shell # python setup.py install
  2、使用psutil获取内存信息
  终端输入python
  shell # python
  Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
   on linux2
  Type "help", "copyright", "credits" or "license" for more information.
  >>> import psutil
  >>> mem = psutil.virtual_memory()
  >>> mem
  svmem(total=8254787584, available=3015909376, percent=63.5, used=4780199936, free=272994304, active=5022015488, inactive=2267688960, buffers=147845120, cached=3053748224, shared=199192576)
  >>>mem.total,mem.used    #总内存,内存使用率
  (8254787584, 4780199936)#然后依次类推
  >>> psutil.swap_memory()
  sswap(total=4160745472, used=463339520, free=3697405952, percent=11.1, sin=8634368, sout=472358912)    #swap 信息
  >>> psutil.swap_memory().used    #swap 使用,后面的可以以此类推
  463339520
  3、使用psutil获取cpu信息
  shell # python
  Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
   on linux2
  Type "help", "copyright", "credits" or "license" for more information.
  >>> import psutil
  >>> psutil.cpu_times_percent()

  scputimes(user=0.5, nice=0.0, system=0.29999999999999999,>  >>> psutil.cpu_times_percent().user    #user 占用cpu的时间比,以此类推
  >>> psutil.cpu_count()    #获取cpu的逻辑个数
  4
  4、使用psutil获取磁盘disk信息
  >>> psutil.disk_partitions()
      #获取磁盘分区信息
  >>> psutil.disk_partitions()    #获取磁盘第一个分区
  sdiskpart(device='/dev/mapper/vg_zabbixserver161-lv_root', mountpoint='/', fstype='ext4', opts='rw')
  >>> psutil.disk_partitions().mountpoint    #获取磁盘第一个分区的挂载点
  '/'
  >>> psutil.disk_usage('/')    #第一个分区的使用信息
  sdiskusage(total=37525069824, used=19492302848, free=16119746560, percent=54.700000000000003)
  >>> psutil.disk_usage('/').total    #第一个分区的总使用量
  37525069824
  >>> psutil.disk_io_counters()    #总的磁盘读写
  sdiskio(read_count=14272042, write_count=221162728, read_bytes=114464508928, write_bytes=3038042720256, read_time=90401135, write_time=3063482316, read_merged_count=19088, write_merged_count=53414985, busy_time=2101696856)
  >>> psutil.disk_io_counter(perdisk=true)    #每个磁盘的IO信息
  {'dm-1': sdiskio(read_count=2405, write_count=117472, read_bytes=9850880, write_bytes=481165312, read_time=29109, write_time=9174865, read_merged_count=0, write_merged_count=0, busy_time=81047), 'sda2': sdiskio(read_count=7126122, write_count=83871599, read_bytes=57226652160, write_bytes=1518993299456, read_time=45019892, write_time=21754212, read_merged_count=18833, write_merged_count=53377640, busy_time=1050439643), 'dm-0': sdiskio(read_count=7142858, write_count=137133182, read_bytes=57216399872, write_bytes=1518512134144, read_time=45351656, write_time=3030824832, read_merged_count=0, write_merged_count=0, busy_time=1050531804), 'sda1': sdiskio(read_count=673, write_count=41897, read_bytes=11671552, write_bytes=81393664, read_time=598, write_time=1807846, read_merged_count=255, write_merged_count=37583, busy_time=656567)}
  5、网络信息
  >>> psutil.net_io_counters()    #获取总的网络信息
  snetio(bytes_sent=29464674146, bytes_recv=33920851012, packets_sent=110329213, packets_recv=111418651, errin=0, errout=0, dropin=0, dropout=0)
  >>> psutil.net_io_counters(pernic=True)       #获取单个出口的网络I/O信息
  {'lo': snetio(bytes_sent=23965934128, bytes_recv=23965934128, packets_sent=70801554, packets_recv=70801554, errin=0, errout=0, dropin=0, dropout=0), 'eth1': snetio(bytes_sent=5499003974, bytes_recv=9955206326, packets_sent=39528890, packets_recv=40618352, errin=0, errout=0, dropin=0, dropout=0)}
  6、其他网络信息
  获取用户信息
  >>> psutil.users()    #获取当前用户
  
  获取开机时间
  >>> psutil.boot_time()    #获取机器开机时间,返回unix时间戳
  1494645282.0
  >>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
  '2017-05-13 11:14:42'    #unix时间转换自然时间格式
  7、系统进程管理办法
  >>> import psutil
  >>> psutil.pids()    #列出所有系统进程
  
  >>> p = psutil.Process(2554)
  >>> p.name()    #进程的名字
  'nginx'
  >>> p.exe()    #进程bin路径
  '/usr/sbin/nginx'
  >>> p.cwd()    #进程工作目录绝对路径
  '/'
  >>> p.status()    #进程状态
  'sleeping'
  >>> p.create_time()    #进程创建时间,时间戳格式
  1494645304.8499999
  >>> p.uids()    #进程uid
  puids(real=0, effective=0, saved=0)
  >>> p.gids()    #进程pid
  pgids(real=0, effective=0, saved=0)
  >>> p.cpu_times()    #进程cpu信息
  pcputimes(user=0.0, system=0.0, children_user=0.0, children_system=0.0)
  >>> p.memory_percent()    #进程内存使用率
  0.016870694561533128
  >>> p.memory_info()    #进程内存信息
  pmem(rss=1392640, vms=45932544, shared=405504, text=864256, lib=0, data=835584, dirty=0)
  p.io_counters()    #进程的I/O信息
  pio(read_count=0, write_count=1, read_bytes=4096, write_bytes=4096, read_chars=0, write_chars=5)
  >>> p.connections()    #返回打开进程的socket列表
  
  >>> p.num_threads()    #进程开启的线程数
  1
页: [1]
查看完整版本: python 获取linux的性能信息