iotop

日常运维(一)

拟墨画扇 提交于 2020-12-31 21:22:41
w命令: 用于查看系统负载、显示已经登陆系统的用户列表,并显示用户正在执行的指令等信息 第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等 我们主要关注的load average后面的3个数值:第①个数值表示1分钟内系统的平均负载值;第②个数值表示5分钟内系统的平均负载值;第③个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量就没有关系。 如何查看CPU数量:grep -c "processor" /proc/cpuinfo; /proc/cpuinfo文件记录了cpu的详细信息。 uptime命令: 能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 vmstat命令: 显示虚拟内存状态,包括进程、内存、I/O等系统整体的运行状态。 w 查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压力,但是具体是哪里(CPU, 内存,磁盘等)有压力就无法判断了。通过 vmstat

10条PyTorch避坑指南

和自甴很熟 提交于 2020-11-30 23:40:19
点击上方“ 视学算法 ”,选择加" 星标 " 重磅干货,第一时间送达 本文转载自:机器之心 | 作者:Eugene Khvedchenya 参与:小舟、蛋酱、魔王 高性能 PyTorch 的训练管道是什么样的?是产生最高准确率的模型?是最快的运行速度?是易于理解和扩展?还是容易并行化?答案是,包括以上提到的所有。 如何用最少的精力,完成最高效的 PyTorch 训练? 一位有着 PyTorch 两年使用经历的 Medium 博主最近分享了他在这方面的 10 个真诚建议 。 ‍ 在 Efficient PyTorch 这一部分中,作者提供了一些识别和消除 I/O 和 CPU 瓶颈的技巧。第二部分阐述了一些高效张量运算的技巧,第三部分是在高效模型上的 debug 技巧。 在阅读这篇文章之前,你需要对 PyTorch 有一定程度的了解。 好吧,从最明显的一个开始: 建议 0:了解你代码中的瓶颈在哪里 命令行工具比如 nvidia-smi、htop、iotop、nvtop、py-spy、strace 等,应该成为你最好的伙伴。你的训练管道是否受 CPU 约束?IO 约束?GPU 约束?这些工具将帮你找到答案。 这些工具你可能从未听过,即使听过也可能没用过。没关系。如果你不立即使用它们也可以。只需记住,其他人可能正在用它们来训练模型,速度可能会比你快 5%、10%、15%-……

高性能PyTorch是如何炼成的?过来人吐血整理的10条避坑指南

≡放荡痞女 提交于 2020-11-29 22:47:57
选自towardsdatascience 作者:Eugene Khvedchenya 机器之心编译 参与:小舟、蛋酱、魔王 高性能 PyTorch 的训练管道是什么样的?是产生最高准确率的模型?是最快的运行速度?是易于理解和扩展?还是容易并行化?答案是,包括以上提到的所有。 如何用最少的精力,完成最高效的 PyTorch 训练? 一位有着 PyTorch 两年使用经历的 Medium 博主最近分享了他在这方面的 10 个真诚建议 。 ‍ 在 Efficient PyTorch 这一部分中,作者提供了一些识别和消除 I/O 和 CPU 瓶颈的技巧。第二部分阐述了一些高效张量运算的技巧,第三部分是在高效模型上的 debug 技巧。 在阅读这篇文章之前,你需要对 PyTorch 有一定程度的了解。 好吧,从最明显的一个开始: 建议 0:了解你代码中的瓶颈在哪里 命令行工具比如 nvidia-smi、htop、iotop、nvtop、py-spy、strace 等,应该成为你最好的伙伴。你的训练管道是否受 CPU 约束?IO 约束?GPU 约束?这些工具将帮你找到答案。 这些工具你可能从未听过,即使听过也可能没用过。没关系。如果你不立即使用它们也可以。只需记住,其他人可能正在用它们来训练模型,速度可能会比你快 5%、10%、15%-…… 最终可能会导致面向市场或者工作机会时候的不同结果。

Python psutil 库查看当前进程的内存消耗及系统内存情况

笑着哭i 提交于 2020-11-28 09:27:07
参考: https://www.liaoxuefeng.com/wiki/1016959663602400/1183565811281984 https://www.cnblogs.com/zhangxinqi/p/9106265.html https://blog.csdn.net/qq_40723803/article/details/105097401 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等操作系统。 安装 git clone https://github.com/giampaolo/psutil.git cd psutil python3 setup.py install 或 pip3 install psutil 内存信息 mem = psutil.virtual_memory() #获取内存完整信息

Linux 如何查看系统负载

六月ゝ 毕业季﹏ 提交于 2020-09-27 09:54:58
如何查看linux机器的平均负载 什么是机器平均负载? 特定的时间间隔内,排队等待cpu处理的进程数,排队等待的进程越多,说明cpu处理的慢,机器的平均负载约大 如何衡量当前系统是否负载过高? 如果每个cpu(可以按CPU核心的数量计算)上当前活动进程数不大于3,则系统性能良好, 不大于4,表示可以接受 如大于5,则系统性能问题严重 建议设置严格的报警值为: CPU核心的数量 比如:CPU核心数量为2,则设置报警值为2 (这样设置是合理的,因为毕竟不是每个应用都支持多CPU及多核心) 什么时候需要查看机器的负载? 当你的系统请求慢的无法忍受的时候 如何查看?常用命令: upTime: 它显示自从上次系统重启以来,活动的用户进程数量和所谓的平均负荷指标( load average)。 11:38:54 当前时间 up 708 days 系统运行时间 2 users 当前登录用户数 load average: 0.08, 0.02, 0.01 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 操作系统的负载状态,反映了应用程序的资源使用情况,从中能找出应用程序优化的瓶颈所在。 系统平均负载,是指处于运行或不可打扰状态的进程的平均数。\ 处于运行,表示运行态,占用 CPU,或就绪态,等待 CPU 调度。\ 不可打扰,表示阻塞,正在等待 I/O

磁盘IO问题分析工具

大兔子大兔子 提交于 2020-08-12 10:44:39
计算机有三大件:CPU、内存、磁盘,这三者有一个“拖后腿”的,那就是磁盘。在生产环境,作为数据库角色的服务器磁盘建议拿至少4块硬盘做RAID10,这样既保证数据读写速度也保证数据的安全。如果使用普通的磁盘,即使CPU再强悍,最终的服务器性能也不会太好。 本案例背景是这样的,一台机器,收到告警磁盘IO达到100%,但是登录机器后查看并没有什么异常,也就是说磁盘飙到100%只是短暂的一会儿。既然出现了100%的情况,那说明肯定是有某个进程有问题。由于这个问题并不是一直出现,所有排查起来有点困难。于是,想到写一个监测脚本,来实时查看磁盘IO使用情况,当发现异常时,则通过一些查看服务器状态的指令来记录具体的指标,从而分析出是什么造成的磁盘IO使用率100%。 知识点一:使用iostat查看磁盘IO 如果你系统中没有iostat命令,需要安装sysstat包,CentOS安装方法是: yum install -y sysstat iostat命令如果不加任何选项,执行结果如下: iostat Linux 3.10.0-862.el7.x86_64 (web30) 2020年08月11日 _x86 64 (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.50 0.00 2.10 0.07 26.12 70.21 Device

进程监控类命令

喜欢而已 提交于 2020-07-24 09:15:50
进程监控类命令 本篇全是命令介绍 , 笔者把各个命令的都实验一遍 , 给同学们看看 . 一. PSTREE 命令 pstree - display a tree of processes 选项 :   -p 显示进程的 PID   -T 隐藏线程信息   -u 显示切换过程   -H PID 高亮显示指定 PID 进程的父进程 示例 : 二. PS 命令 ps - report a snapshot of the current processes. 选项 : PS 有三种风格的选项写法 :   BSD 风格写法 ps aux   UNIX 风格写法 ps -ef   GNU 风格写法 ps --pid PID BSD 风格选项 :   a 显示所有与终端有关的进程   x 显示所有与终端无关的进程   u 显示进程所有者相关的信息   f 命令列把相关的进程显示成进程树   k 对属性进行排序 , 属性前加上 - 表示倒序   o 选择显示的字段 pid cmd psr ni(nice) pri rtprio tid class %cpu %mem user ruser euser 等等   euser 表示显示有效用户字段   ruser 表示显示真是用户字段   psr 表示显示 CPU 与进程的绑定关系   pcpu CPU 的利用率   ppid 父进程的 PID  

linux 进程管理和内存分配

自闭症网瘾萝莉.ら 提交于 2020-05-04 11:45:25
1、进程相关概念    进程: 正在运行中的程序   内核功用: 进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等   Process: 运行中的程序的一个副本,是被载入内存的一个指令集合      进程 ID(Process ID,PID)号码被用来标记各个进程     通常从执行进程的用户来继承,存在生命周期    task struct 任务结构表: Linux 内核存储进程信息的数据结构格式    task list 任务列表: 多个任务的 task struct 组成的链表    进程创建:     都由其父进程创建,父好关系,CoW(写时复制,不发生改变时父子都指向同一文件;发生改变时,则复制)     init: 第一个进程(centos6:init,centos7:systemd)      守护进程: 随着计算机的开启、关闭而随之开启、关闭。 2、进程,线程和协程:       注: 一个进程里至少有一个线程;线程之间由操作系统进行调度,包括进程中使用的资源也由操作系统进行调度;协程相当于线程中的语句块,由线程控制。 3、Page Frame: 页框,用存储页面数据,存储 Page,每个进程要使用的分配空间    虚拟内存(线性内存): 进程运行的时候以为自己拥有了全部的内存空间    物理地址空间和线性地址空间:      MMU:

5.1-4监控Linux系统状态

蓝咒 提交于 2020-05-02 05:26:06
查看系统负载 top命令 free命令 手动增加swap 监控磁盘 查看系统负载 W命令/uptime命令 W命令可以查看系统当前的负载情况 [root@www ~]# w 08:34:03 up 1 min, 1 user, load average: 1.78, 0.73, 0.27 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.204.1 08:33 3.00s 0.04s 0.02s w 第一行显示的内容为:1,系统时间 2,系统运行时间 3,登录用户数量 4,平均负载(三个数值,第一个是1分钟内的平均负载,第二个是5分钟内的平均负载,第三个是15分钟内的平均负载) #平均负载是X分钟平均有多少个进程占用CPU 第二行的内容是下面行的说明:1,登录用户 2,登录终端 3,登录时间点 比较重要的是第一行的load average 的三个数值中的第一个,一般情况下该值越大说明CPU负载越大 某一时刻1颗CPU只能有一个进程在使用其资源 占用CPU的进程可以是Running,也可以是waiting 查看CPU信息的命令 cat /proc/cpuinfo #查看最后一段信息的processor,如果是3,则为4个。(这里的个数不是物理CPU个数,比如机器里面有两个四核CPU,物理CPU个数为8) lscpu