cpu时间

linux命令

[亡魂溺海] 提交于 2020-04-08 14:00:58
#ls命令 ls -lSh :以长格式输出并且,按照文件大小进行排序 #locate命令 locate:在linux系统里有一个名为locate.db的数据库文件,这个文件包含系统文件的文件名及对应路径信息。故而,locate命令查找文件时就不用遍历磁盘,而是直接查找mlocate.db文件,这样可以快速给出结果。 -c :不显示匹配到的内容,只显示匹配到的行数 -i :匹配时忽略大小写 -r :支持基本正则表达式匹配 --regex :支持扩展正则表达式匹配 -c :不输出文件名,仅计算找到的文件数量 -l :仅输出几行 #updatedb更新mlocate数据库 updatedb :updatedb命令可以创建或更新locate命令使用的数据库。 -U :更新指定目录相关的数据库信息。默认是扫描整个系统。耗时较长。 -v :显示命令执行过程 #diff命令 -y :以并列的方式显示文件的异同之处 -c :使用上下文的输出格式 -w :在使用-y参数时,指定显示宽度 -u :使用统一格式输出 #tee命令 tee :把数据重定向到给定文件和屏幕上 -a :向文件追加内容而不是覆盖 #grep命令 -v :排除某些行 -n :显示匹配行和行号 -i :不区分大小写 -c :只统计匹配的行数 --color :为grep过滤的匹配字符添加颜色 -w :只匹配过滤的单词 -o

面试问我,创建多少个线程合适?我该怎么说

*爱你&永不变心* 提交于 2020-04-08 08:54:43
| 如果好看,请给个赞 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough 现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star 为什么要使用多线程? 防止并发编程出错最好的办法就是不写并发程序 既然多线程编程容易出错,为什么它还经久不衰呢? A:那还用说,肯定在某些方面有特长呗,比如你知道的【它很快,非常快】 我也很赞同这个答案,但说的不够具体 并发编程适用于什么场景? 如果问你选择多线程的原因就是一个【快】字,面试也就不会出那么多幺蛾子了。你有没有问过你自己 并发编程在所有场景下都是快的吗? 知道它很快,何为快?怎样度量? 想知道这两个问题的答案,我们需要一个从【定性】到【定量】的分析过程 使用多线程就是在正确的场景下通过设置正确个数的线程来最大化程序的运行速度(我感觉你还是啥也没说) 将这句话翻译到硬件级别就是要充分的利用 CPU 和 I/O 的利用率 两个正确得到保证,也就能达到最大化利用 CPU 和 I/O的目的了。最关键是,如何做到两个【正确】? 在聊具体场景的时候,我们必须要拿出我们的专业性来。送你两个名词 buff 加成 CPU 密集型程序 I/O

面试问我,创建多少个线程合适?我该怎么说

故事扮演 提交于 2020-04-08 08:30:46
| 如果好看,请给个赞 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough 现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star 为什么要使用多线程? 防止并发编程出错最好的办法就是不写并发程序 既然多线程编程容易出错,为什么它还经久不衰呢? A:那还用说,肯定在某些方面有特长呗,比如你知道的【它很快,非常快】 我也很赞同这个答案,但说的不够具体 并发编程适用于什么场景? 如果问你选择多线程的原因就是一个【快】字,面试也就不会出那么多幺蛾子了。你有没有问过你自己 并发编程在所有场景下都是快的吗? 知道它很快,何为快?怎样度量? 想知道这两个问题的答案,我们需要一个从【定性】到【定量】的分析过程 使用多线程就是在正确的场景下通过设置正确个数的线程来最大化程序的运行速度(我感觉你还是啥也没说) 将这句话翻译到硬件级别就是要充分的利用 CPU 和 I/O 的利用率 两个正确得到保证,也就能达到最大化利用 CPU 和 I/O的目的了。最关键是,如何做到两个【正确】? 在聊具体场景的时候,我们必须要拿出我们的专业性来。送你两个名词 buff 加成 CPU 密集型程序 I/O

Linux性能之CPU使用率

China☆狼群 提交于 2020-04-08 00:40:20
CPU使用率 Linux 通过 /proc 虚拟文件系统,向用户空间提供了系统内部状态的信息,而 /proc/stat 提供的就是系统的 CPU 和任务统计信息 proc - process information pseudo-file system 查询 man proc 关键指标常用参数 user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。 nice(通常缩写为 ni),代表低优先级用户态 CPU 时间,也就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间。这里注意,nice 可取值范围是 -20 到 19,数值越大,优先级反而越低。 system(通常缩写为 sys),代表内核态 CPU 时间。 idle(通常缩写为 id),代表空闲时间。注意,它不包括等待 I/O 的时间(iowait)。 iowait(通常缩写为 wa),代表等待 I/O 的 CPU 时间。 irq(通常缩写为 hi),代表处理硬中断的 CPU 时间。 softirq(通常缩写为 si),代表处理软中断的 CPU 时间。 steal(通常缩写为 st),代表当系统运行在虚拟机中的时候,被其他虚拟机占用的 CPU 时间。 guest(通常缩写为 guest),代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的

CPU平均负载篇

六月ゝ 毕业季﹏ 提交于 2020-04-07 12:23:12
1.什么是平均负载? 答:平均负载是指,单位时间内可运行状态和不可中断状态的平均进程数 2.什么是可运行状态和不可中断状态? 答: 可运行状态是指正在使用cpu或者等待cpu的进程 不可中断状态的进程是指正处于内核关键流程的进程,是不可打断的 3.如何查看可运行状态和不可中断状态? 答: ps中的R状态是可运行状态 ps中的D状态是不可中断状态 4.如何查看系统有几个cpu? 答:grep "model name" /proc/cpuinfo 5.平均负载大于多少需要关注? 答:cpu平均负载大于70%需要关注 6.平均负载与cpu使用率的区别? 答:平均负载包含cpu进程,等待cpu以及等待io 7.分析cpu平均负载的工具有哪些? 答:有uptime,mpstat,pidstat,iostat 8.以下uptime输出的含义 02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88 答:当前时间 系统运行时间 正在登陆用户数 1分钟负载 5分钟负载 15分钟负载 9.mpstat的作用是? 答:mpstat是多核cpu性能分析工具,用来查看每个cpu性能指标,以及所有cpu平均指标 10.pidstat的作用是? 答:pidstat是进程性能分析工具,用来查看进程的cpu、内存、i/o

tensorflow - GPU 加速

旧街凉风 提交于 2020-04-07 10:16:17
首先检测是否可用 GPU import tensorflow as tf print('GPU', tf.test.is_gpu_available()) # GPU True tf.device Tensorflow 通过 tf.device 指定每个操作运行的设备,可以指定本地的 CPU、GPU,还可以指定远程服务器; Tensorflow 会给每个本地设备一个名称,如 /cpu:0,即使电脑有多块 CPU ,tf 不会做区分,统一叫 /cpu:0,而 如果有多块 GPU,第 n 块 GPU 叫 /gpu:n,n 从 0 开始; with tf.device('/cpu:0'): d1 = tf.Variable(1.) d2 = tf.Variable(2., name='d2') with tf.device('/gpu:0'): d3 = tf.add(d1, d2) with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: sess.run(tf.global_variables_initializer()) print(sess.run(d3)) log_device_placement tf 提供了 log_device_placement 来查看 计算在 哪个设备上运行;

Linux iostat命令详解

可紊 提交于 2020-04-07 07:54:14
磁盘I/O 子系统是Linux 系统中最慢的部分,当觉得系统中出现了I/O 瓶颈时,如何监控系统的I/O情况,本文介绍的iostat命令完全可以胜任这个工作,iostat命令是报告cpu的统计信息和磁盘的i/o统计信息,下面从man手册来学习这个命令 NAME iostat – Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions. iostat命令是报告cpu的统计信息和磁盘的i/o统计信息 iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ] DESCRIPTION The iostat command is used for monitoring system input/output device loading by observing the time the devices are active in relation to their average transfer

计算机常识

走远了吗. 提交于 2020-04-07 05:42:24
计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。 计算机发明者 约翰·冯·诺依曼 。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。 发展历史 计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,例 ENIAC计算机 如从“结绳记事”中的绳结到算筹、算盘计算尺、机械计算机等。它们在不同的历史时期发挥了各自的历史作用,同时也启发了电子计算机的研制和设计思路。 1889年,美国科学家 赫尔曼·何乐礼 研制出以电力为基础的电动制表机,用以储存计算资料。 1930年,美国科学家 范内瓦·布什 造出世界上首台模拟电子计算机。 1946年2月14日,由美国军方定制的世界上第一台电子计算机“ 电子数字积分计算机 ”(ENIAC Electronic

单核cpu多线程有必要吗?

こ雲淡風輕ζ 提交于 2020-04-07 01:32:08
问题分析 现代计算机一般都是多核cpu,多线程的可以大大提高效率,但是可能会有疑问,那单核CPU使用多线程是不是没有必要了,假定一种情况, web应用服务器,单核CPU、单线程 ,用户发过来请求,单个线程处理,CPU等待这个线程的处理结果返回,查询数据库,CPU等待查询结果...,只有一个线程的话,每次线程在处理的过程中CPU都有大量的空闲等待时间,那这样来说并行和串行似乎并没有体现并行的优势,因为任务的总量在那里,实际情况肯定不是这样的,即便是单核CPU,一个进程中往往也是有多个线程存在的,每个线程各司其职,CPU来调度各线程。 这里需要区分CPU处理指令和IO读取的不同,CPU的执行速度要远大于IO的过程,因此在大多数情况下多一些复杂的CPU计算都比增加一次IO要快,这一块深入理解要学习计算机原理相关的知识。 现实生活中也是有很多类似的例子,比如厨师做一道菜,买菜和买配料需要去不同的两个商店,如果这个过程只依靠他一个人来做,那耗费的总时间就是买菜再去买调料的总时间,如果有一个帮厨,那么就可以兵分两路,再来汇总结果,时间基本可以减半,厨师和帮厨就是不同的线程。 编程是高度抽象生活的一门艺术。 场景模拟 模拟单线程和多线程的效率差距,这里使用连接数据库,和读取磁盘文件来模拟IO操作,期望结果: 单线程总耗时:数据库连接耗时 + 磁盘文件读取耗时 多线程总耗时

Linux性能指标和平均负载

此生再无相见时 提交于 2020-04-06 23:51:03
性能指标 性能优化核心指标:吞吐和延迟 Linux Performance Tools: 平均负载 ➜ ~ uptime 11:32 up 5 days, 19:45, 2 users, load averages: 2.01 1.86 2.04 11:32 //当前时间 up 5 days, 19:45 //系统运行时间 2 users //正在登录用户数 load averages: 2.01 1.86 2.04 //过去 1 分钟、5 分钟、15 分钟的平均负载 System load averages is the average number of processes that are either in a runnable or uninterruptable state. 可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。 不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。 不可中断状态实际上是系统对进程和硬件设备的一种保护机制。 /