cpu时间

Linux Cgroup 入门教程:cpuset

时间秒杀一切 提交于 2020-04-06 18:11:45
这是 Cgroup 系列的第四篇,往期回顾: Linux Cgroup 入门教程:基本概念 Linux Cgroup 入门教程:CPU Linux Cgroup 入门教程:内存 通过 上篇文章 的学习,我们学会了如何查看当前 cgroup 的信息,如何通过操作 /sys/fs/cgroup 目录来动态设置 cgroup,也学会了如何设置 CPU shares 和 CPU quota 来控制 slice 内部以及不同 slice 之间的 CPU 使用时间。本文将继续探讨对 CPU 使用时间的限制。 对于某些 CPU 密集型的程序来说,不仅需要获取更多的 CPU 使用时间,还要减少工作负载在节流时引起的上下文切换。现在的多核系统中每个核心都有自己的缓存,如果频繁的调度进程在不同的核心上执行势必会带来缓存失效等开销。那么有没有方法针对 CPU 核心进行隔离呢?准确地说是把运行的进程绑定到指定的核心上运行。虽然对于操作系统来说,所有程序生而平等, 但有些程序比其他程序更平等。 对于那些更平等的程序来说,我们需要为它分配更多的 CPU 资源,毕竟人都是很偏心的。废话少说,我们来看看如何使用 cgroup 限制进程使用指定的 CPU 核心。 1. 查看 CPU 配置 CPU 核心的编号一般是从 0 开始的,4 个核心的编号范围是 0-3 。我们可以通过查看 /proc/cpuinfo

组原——④存储器5

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-06 17:31:16
PART 2—主存储器 2.7 提高访存速度的措施 2.7.1 单体多字系统 原理:在一个存取周期内,从同一地址取出四条指令(之前是一次一个的),再将这四条指令按顺序送至CPU执行——速度提高了 前提:指令和数据连续 2.7.2 多体并行系统 2.7.3 高性能存储芯片 (1)SDRAM (2)RDRAM (3)带Cache的RDRAM PART 3—高速缓冲存储器 3.1 概述 3.1.1 问题的提出 ①CPU等待I/O设备,浪费时间→在CPU与主存之间加一级缓存 ②主存速度提高慢,跟不上CPU的速度了 ## 重大发现:由于指令和数据在主存里是 连续存放 的,一些子程序、循环程序和常数会多次调用→CPU访存有相对的局限性→将CPU近期要用到的数据提前送到cache,提高速度 3.1.2 Cache的工作原理 缓存里的块数远小于主存的,所以缓存里的块数是根据CPU的需要不断变化的。好是好,只是缓存里的每个块都要做一个标记,(啊~这次来我这里待的小可爱是你呀~~),标记就是主存里的块的编号。那当CPU读信息时,先将两者的块地址进行比较。 命中率与容量(越大越好)、块长(过小过大都不好)有关 3.1.3 Cache的基本结构 写操作 :使Cache与主存内容保持一致 法一:写直达法 写操作时,数据既写入Cache又写入主存→保证了数据一致,但增加了访存次数 法二:写回法 写操作时

linux 调试常用命令

大兔子大兔子 提交于 2020-04-06 13:25:47
top 参数 1 ,查看多核cpu 也可用 mpstat -P ALL pstate PID 查看进程堆栈 pmap -x PID 查看进程 内存段 ldd XXX.so 查看 .so 的link 信息 linux 查看线程 方法一:PS 在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。 1.$ ps -T -p <pid> 2 “SID”栏表示线程ID,而“CMD”栏则显示了线程名称。 方法二: Top top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。 1.$ top -H 2.要让top输出某个特定进程<pid>并检查该进程内运行的线程状况: $ top -H -p <pid> Linux系统下,大多数的性能监测工具保存在/proc目录下。这里我们将Linux AS 和 SUSE LINUX EnterpriseServer中的命令行及图形方式下的性能监测工具做概括性介绍。这些工具有些在系统工具盘里,有些可以从网上下载。sar,iostat,和pstat这三个工具在distributionCD里,也可以从网上下载,网址是 http://perso.wanadoo.fr

并发编程-多线程,GIL锁

倾然丶 夕夏残阳落幕 提交于 2020-04-06 11:32:00
本章内容: 1.什么是GIL 2.GIL带来的问题 3.为什么需要GIL 4.关于GIL的性能讨论 5.自定义的线程互斥锁与GIL的区别 6.线程池与进程池 7.同步异步,阻塞非阻塞 一.什么是GIL 官方解释: ''' In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.) ''' 释义: 在CPython中,这个全局解释器锁,也称为GIL,是一个互斥锁,防止多个线程在同一时间执行Python字节码,这个锁是非常重要的,因为CPython的内存管理非线程安全的,很多其他的特性依赖于GIL,所以即使它影响了程序效率也无法将其直接去除 总结: 在CPython中,GIL会把线程的并行变成串行

Linux终端监控工具之dstat

人盡茶涼 提交于 2020-04-06 08:42:37
1、安装 yum install dstat 2、示例 1)直接跟数字,表示#秒收集一次数据,默认为一秒;dstat 5表示5秒更新一次 这是默认输出显示的信息: CPU状态: CPU的使用率。这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。 磁盘统计: 磁盘的读写操作,这一栏显示磁盘的读、写总数。 网络统计: 网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。 分页统计: 系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值是0 0。 系统统计: 这一项显示的是中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。 默认情况下,dstat每秒都会刷新数据。如果想退出dstat,你可以按"CTRL-C"键。 需要注意的是报告的第一行

并发编程概念篇-02并行与并发

时光毁灭记忆、已成空白 提交于 2020-04-06 08:36:15
并行与并发区别 举个例子,如果有一条高速公路上面有4条车道,那么最大的并行车辆就是4辆,此条高速公路同时并排行驶的车辆小于等于4辆的时候,车辆就可以并行行驶,CPU也是这个原理,一个CPU相当于一条高速公路, 核心数或者线程数就相当于可以并排同行的车道 ,而多个 CPU 就 相当于 有多条 高速公路 。 当谈到并发的时候一定要加一个时间单位,也就是描述单位时间内的并发量是多少?离开了时间单位其实是没有意义的,俗话说一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个CPU,要让它同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的就是“ 时间片轮转进程调度算法 ”。并发指应用能够交替执行不同的任务,比如单CPU核心下执行多线程并非是同时执行多个任务,如果你开2个线程执行,就是在几乎不可能察觉到的速度不断的去切换这2个任务,以达到” 同时执行的效果 “,其实真正意义上并不是同时执行的,只是计算机的速度太快,我们无法察觉而已。 并行指应用能够同时执行不同的任务,比如吃饭的时候可以看电视。这2件事情可以同时执行。 两者区别:一个是交替执行,一个是同时执行。 本篇为学习并发编程而理解并行与并发含义,2020年03月20日 晚24:23 wangmo 来源: oschina 链接: https://my

异构计算系列文章(一):定义、场景及局限性

不想你离开。 提交于 2020-04-06 08:07:01
作者 | 顾钧 2020 开年,ZILLIZ 与 InfoQ 筹备了以异构计算为专题的一系列文章。此篇文章作为异构计算专题的开篇,整体性的介绍了异构计算的定义、场景与局限性。在后续的专题文章中,我们将深入不同的 AI 应用场景进一步解释异构计算的优势。 诞生伊始,计算机处理能力就处于高速发展中。及至最近十年,随着大数据、区块链、AI 等新技术的持续火爆,人们为提升计算处理速度更是发展了多种不同的技术思路。大数据受惠于分布式集群技术,区块链带来了专用处理器(Application-Specific IC, ASIC)的春天,AI 则让大众听到了“异构计算”这个计算机界的学术名词。 “异构计算”(Heterogeneous computing),是指在系统中使用不同体系结构的处理器的联合计算方式。在 AI 领域,常见的处理器包括:CPU(X86,Arm,RISC-V 等),GPU,FPGA 和 ASIC。(按照通用性从高到低排序) AI 是一门较为复杂、综合的学科。在只有 CPU 平台的情况下,AI 开发者要学习的算法、模型、框架、编程语言已经不少。如果再考虑多个不同处理器平台,情况会变得更为复杂。在展开讨论不同的应用场景之前,我们先了解一下什么是“异构计算”。 异构计算 首先需要明确的是,计算机体系结构≠硬件架构。体系结构不单包括硬件层面的实现,也包括软件层面的考量。当 IBM 在

鸟哥的私房菜 第0章

南笙酒味 提交于 2020-04-06 07:56:38
(1)计算机硬件的五大单元:输入单元、输出单元、CPU内部的控制单元、算术逻辑单元和内存五大部分。 (2)CPU的种类:CPU的种类有两种,根据指令的执行时间和操作的复杂度分为精简指令集合复杂指令集。 (3)一般的,文件大小使用的是二进制的方式,所以1GB的文件大小实际上为:1024*1024*1024B那么大。速度单位则常使用十进制,例如1GHZ就是1000*1000*1000Hz的意思。(一般硬盘制造商会使用十进制的单位) (4)主板上的芯片组通常又分为两个桥接器来控制各组件的通信:(一)北桥负责连接速度较快的CPU、内存和显卡等组件;(二)南桥负责连接速度较慢的周边接口,包括硬盘、USB、网卡等。(AMD和Intel不同的地方是将内存控制组件集成到CPU中,不用经过北桥,理论上能加速CPU与内存的传输速度) (5)多核就是在CPU封装中嵌入多个运算内核(一个CPU外壳中有多个CPU单元), 频率就是CPU每秒钟可以进行的工作次数。 (6)外频就是CPU与外部组件进行数据传输/运算的速度,倍频则是CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU的频率。(一般超频都是超倍频,不过要注意CPU的极限) (7)CPU与内存的通行靠的是外部频率(也就是倍频),也就是总线。现在常见的总线宽度有32/64位,如果架构中前端总线最高速度为1600MHz,则频宽为:1600MHz

计算机硬件知识整理

偶尔善良 提交于 2020-04-06 07:11:05
编程语言的作用及与操作系统和硬件的关系 答: 1) 编程语言可以让计算机(操作系统和硬件)产生智能. 2) 操作系统与硬件的关系:操作系统是位于硬件层上的第一层软件,它直接管理着计算机的硬件,合理组织计算机工作流程,并提高了硬件的利用率。。 应用程序-》操作系统-》硬件 答: 1) 应用程序是让操作系统管理的硬件(铁和石头)产生智能用的 2) 操作系统是用来管理让铁和石头做的硬件进行逻辑运算用的 3) 硬件是石头和铁做的 cpu-》内存-》磁盘 答: 磁盘是装花生的口袋,内存是抓花生的手,CPU是吃花生的嘴 cpu与寄存器,内核态与用户态及如何切换 答: 1) 用户态程序将一些数据值放在寄存器中, 或者使用参数创建一个堆栈(stack frame), 以此表明需要操作系统提供的服务. 2) 用户态程序执行陷阱指令 3) CPU切换到内核态, 并跳到位于内存指定位置的指令, 这些指令是操作系统的一部分, 他们具有内存保护, 不可被用户态程序访问 4) 这些指令称之为陷阱(trap)或者系统调用处理器(system call handler). 他们会读取程序放入内存的数据参数, 并执行程序请求的服务 5) 系统调用完成后, 操作系统会重置CPU为用户态并返回系统调用的结果 存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池 答:

单片机究竟是如何构成的呢

谁都会走 提交于 2020-04-06 05:52:24
单片机是控制电子产品的大脑 现如今,我们生活中的许多电器都使用了单片机。例如:手机、电视机、冰箱、洗衣机、以及按下开关,LED就闪烁的儿童玩具。那么,单片机在这些电器中究竟做了些什么呢? 单片机是这些电器动作的关键,是指挥硬件运行的。例如:接收按钮或按键的输入信号,按照事先编好的程序,指挥马达和LCD的外围功能电路动作。 那么,单片机是如何构成的呢?如图1所示。 单片机是由CPU、内存、外围功能等部分组成的。如果将单片机比作人,那么CPU是负责思考的,内存是负责记忆的,外围功能相当于视觉的感官系统及控制手脚动作的神经系统。 图1:单片机的构成要素 尽管我们说CPU相当于人的大脑,但是它却不能像人的大脑一样,能有意识的、自发的思考。CPU只能依次读取并执行事先存储在内存中的指令组合(程序)。当然CPU执行的指令并不是“走路”、“讲话”等高难度命令,而是一些非常简单的指令,象从内存的某个地方“读取数据”或把某个数据“写入”内存的某个地方,或做加法、乘法和逻辑运算等等。然而这些简单指令的组合,却能实现许多复杂的功能。 会思考的CPU 让我们从CPU的构成来了解它的作用吧,如图2所示。 图2:CPU的作用 ◇程序计数器CPU读取指令时需要知道要执行的指令保存在内存的什么位置,这个位置信息称为地址(相当于家庭住址)。程序计数器(PC)就是存储地址的寄存器。通常,PC是按1递增设计的,也就是说