一名爬虫工程师的运维入门之路:psutil学习笔记

news/2024/7/19 10:19:45 标签: 爬虫, 运维, 操作系统
  1. psutil简介
    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统
  2. 安装

    pip install psutil
  3. 使用
  • cpu信息

    # 显示cpu所有逻辑信息
    b = psutil.cpu_times()
    # 查看用户的cpu时间比
    c = psutil.cpu_times().user
    # 查看cpu物理个数
    d = psutil.cpu_count(logical=False)
    print(b, c, d)
    
  • 磁盘信息

    # 获取磁盘完整信息
    print(psutil.disk_io_counters())
    # 获取分区(参数)的使用情况
    print(psutil.disk_usage('/'))```
    
  • 内存信息

    # 系统内存的所有信息
    a = psutil.virtual_memory()
    print(a)
    # 系统总计内存
    print(a.total)
    # 系统已经使用内存
    print(a.used)
    # 系统空闲内存
    print(a.free)
    # 获取swap内存信息
    print(psutil.swap_memory())
  • 磁盘信息

    # 获取磁盘完整信息
    print(psutil.disk_io_counters())
    # 获取分区(参数)的使用情况
    print(psutil.disk_usage('/'))
  • 网络信息

    # 获取网络总的IO信息
    print(psutil.net_io_counters())
    # 获取每个网络接口的IO信息
    print(psutil.net_io_counters(pernic=True))
  • 其他系统信息

    # 当前用户信息
    print(psutil.users())
    # 获取开机
    import datetime
    print(psutil.boot_time())
    print(datetime.datetime.utcfromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d %H:%M:%S'))
    
  • 进程信息

    pids = psutil.pids() #列出所有进程id
    pids_4644= psutil.Process(4644) #列出指定pid为4644的进程信息
    print (pids)
    print (pids_4644.name())    #输出进程名
    print (pids_4644.exe())     #输出进程路径
    print (pids_4644.cwd())     #输出绝对路径
    print (pids_4644.status())  #输出进程状态
    print (pids_4644.create_time()) #输出创建时间、时间戳格式
    #print (pids_4644.gid())        #输出进程gid信息
    print (pids_4644.cpu_times)     #输出cpu时间信息,包括user,system两个cpu时间
    print (pids_4644.cpu_affinity()) #get进程cpu亲和度
    print (pids_4644.memory_percent()) #进程利用率
    print (pids_4644.memory_info)    #进程内存信息
    print (pids_4644.io_counters())  #进程io信息,包括读写IO数及字节数
    print (pids_4644.connections())      #返回打开进程sockert的namedutples列表、包括fs,family等信息
    print (pids_4644.num_threads())     #进程开启的线程数

http://www.niftyadmin.cn/n/1774164.html

相关文章

MySQL——索引基础

本篇文章,我们将从索引基础开始,介绍什么是索引以及索引的几种类型,然后学习如何创建索引以及索引设计的基本原则。 本篇文章中用于测试索引创建的user表的结构如下: 什么是索引 索引(在 MySQL 中也叫“键key”&#x…

两个队列实现一个桟

题目:用两个队列实现一个栈 现有两个队列q1与q2,必须保证q1,q2中有一个始终为空, 入栈:如果q1与q2都为空,那么我们选择q1入栈也就是入队列,比如q1入栈 1 2 3 4 ; 出栈&#xff…

Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC

Spring4新特性——泛型限定式依赖注入 Spring4新特性——核心容器的其他改进 Spring4新特性——Web开发的增强 Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC Spring4新特性——Groovy Bean定义DSL Spring4新特性——更好的Java泛型操作API Spring4新特性—…

自定义非等高 Cell

1、自定义非等高 Cell介绍 1.1 代码自定义(frame) 新建一个继承自 UITableViewCell 的类。重写 initWithStyle:reuseIdentifier: 方法。 添加所有需要显示的子控件(不需要设置子控件的数据和 frame, 子控件要添加到 contentView 中)。进行子控件一次性的…

STL中的vector应用---简单通讯录

在vector中放入结构体数据&#xff0c;对结构体数据进行管理。 //通讯录 #include<iostream> #include<vector> #include<string> #include<windows.h>using namespace std;struct txl {string phone;string name; };vector<txl> host; txl new_…

Webpack打包时警告 - Critical dependency: the request of a dependency is an expression

关于解决 [Webpack] Critical dependency: the request of a dependency is an expression ------------------------------------------------------------------------------------------------- 就遇到的情况和查阅相关资料来看&#xff0c;这个问题一般出现在 编译用于node…

C++标准库---findfind_if

find: 根据equality操作符&#xff0c;循环查找[first,last)内的所有元素&#xff0c;找出第一个匹配"等同(equality)条件"者。如果找到&#xff0c;就返回一个InputIterator指向该元素&#xff0c;否则返回迭代器last。 template<class InputIterator,class T>…

模拟磁盘被节点×××

模拟磁盘被节点这里是模拟实验&#xff0c;模拟磁盘节点被&#xff0c;先添加一块空间不大的磁盘&#xff0c;这里加的是20M的。加完磁盘&#xff0c;重启电脑&#xff0c;使电脑识别磁盘。将新加的磁盘&#xff0c;分区、格式化、挂载后进行使用。过程中使用的命令在其他博客中…