cpu参数

性能量化之cpu

a 夏天 提交于 2020-02-29 21:54:33
系统现在很慢”似乎是对系统的性能最常用的抱怨了,但究竟慢到什么程度,如何来界定慢,可能需要对性能进行量化,对于OS来说,大致主要分为cpu,内存,磁盘,网络等组件,对这些维度的性能量化,不但可以更准确的定位到系统的瓶颈,更是做容量评估的基础。下面先看看cpu。 Cpu的性能主要跟缓存,主频,指令集,工艺,流水线等相关因素有关。 当前微处理器的设计上主要分为精简指令集(RISC),复杂指令集(CISC),所以对于不同的cpu来说,如果使用的指令集不同,单纯的从时钟频率来判断频率高的就相应的性能就高,通常并不准确。 Cpu的性能上每18个月就会增长一倍,而内存的速度在七年里才增长一倍,鉴于速度上的不匹配,而产生的L1,L2 cache。下表是不同的存储访问的延时。 Cache location and type Access time (in ns) Size "Good" hit rate L1 on-chip                  1-3 8-64 KB >90% L2 on-chip                  6-18 1-8 MB >50% L3 off-chip                30-40 8-32 MB >30% Main memory                 220 Very large - 对于开发或者运维人员来说

内核定时任务timer_list

孤人 提交于 2020-02-29 19:35:54
使用定时器任务,可以让内核在将来的一个指定时刻执行一段指定的代码。内核定时器相关的接口在linux/timer.h文件中。 本文将会先介绍定时任务的使用,然后在此基础上了解其内部的实现逻辑。 一、定时任务结构体表示: struct timer_list { struct list_head entry; //用于链接到内核定时器链表中 unsigned long expires; //定时任务过期时间 void (*function)(unsigned long); //定时任务的工作函数 unsigned long data; //定时任务工作函数参数 struct tvec_base *base; //定时任务关联的内核定时器 #ifdef CONFIG_TIMER_STATS void *start_site; char start_comm[16]; int start_pid; #endif #ifdef CONFIG_LOCKDEP struct lockdep_map lockdep_map; #endif }; 二、定时任务相关的接口: 1. 初始化定时任务 #define TIMER_INITIALIZER(_function, _expires, _data) { \ .entry = { .prev = TIMER_ENTRY_STATIC }, \

Ubantu 查看系统资源占用

一笑奈何 提交于 2020-02-29 19:32:13
1 top 查看ubuntu的资源占用的命令为 $: top 说明:top命令就可以查看内存,cpu和进程了,很方便 top: 主要参数 d:指定更新的间隔,以秒计算。 q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。 c:显示进程完整的路径与名称。 S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。 s:安全模式。 i:不显示任何闲置(Idle)或无用(Zombie)的行程。 n:显示更新的次数,完成后将会退出to 显示参数: PID(Process ID):进程标示号。 USER:进程所有者的用户名。 PR:进程的优先级别。 NI:进程的优先级别数值。 VIRT:进程占用的虚拟内存值。 RES:进程占用的物理内存值。 SHR:进程使用的共享内存值。 S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。 %CPU:该进程占用的CPU使用率。 %MEM:该进程占用的物理内存和总内存的百分比。 TIME+:该进程启动后占用的总的CPU时间。 Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。 top命令 《空格》:立刻刷新。 P:根据CPU使用大小进行排序。 T:根据时间、累计时间排序。 q:退出top命令。 m:切换显示内存信息。 t:切换显示进程和CPU状态信息。

CPU /磁盘I/O /内存

南笙酒味 提交于 2020-02-29 18:19:10
oracle的除了本身的性能外,另外系统的性能对oracle的运行也很关键,主要是CPU,磁盘I/O,内存,网络情况等。 CPU 一、cpu的检查 sar命令的使用: ossdb2: sar sar: 0551-201 Cannot open /var/adm/sa/sa11. sar: 0551-213 Try running /usr/lib/sa/sa1 <increment> <number> 出现如上所述错误信息说明系统没有建立收集sar报告数据的数据收集程序,按照如下所述的步骤 建立sar数据文件: 1.以root用户登陆后输入命令: su - adm ; 2.输入命令: crontab -e 3.移掉下面这些行前面的#(注释符)然后退出保存 : #0 8-17 * * 1-5 /usr/lib/sa/sa1 1200 3 & #0 * * * 0,6 /usr/lib/sa/sa1 & #0 18-7 * * 1-5 /usr/lib/sa/sa1 & #5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 3600 -ubcwyaqvm & 4.编辑/etc/rc文件,移掉下面一行前面的#(注释符): #/bin/su - adm -c /usr/lib/sa/sadc /usr/adm/sa/sa `date +%id`

Java基础 —— 多线程与并发

喜夏-厌秋 提交于 2020-02-29 11:03:38
进程与线程的关系 基本概念 进程 :是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统进行资源分配和调度的基本单位。 线程 :是操作系统能够进行运算调度的最小单位,是操作系统独立调度和分派的基本单位。被包含于 进程 中,是 进程 的实际运作单位。 两者关系 一个 进程 可以有多个 线程 ,多个 线程 共享进程的堆和方法区资源。但每个线程有各自的程序计数器和栈区域。 程序计数器:用于记录线程当前要执行的指令地址信息的区域; 栈:用于存储线程私有的局部变量和线程调用栈祯的区域; 堆:进程中最大的一块内存区域,存放各种变量信息,为线程共享; 方法区:用于存放JVM加载的类、常量及静态变量等信息的区域,为线程共享。 两者区别 进程 具有独立的地址空间,一个进程崩溃后不会对其它进程产生影响; 线程 是一个进程中的某个执行路径,由于线程没有独立的地址空间,其死掉可能会影响到整个进程; 线程 的开销相对于 进程 而言,要更“轻量级”; 一个 进程 内的多个 线程 ,由于共享进程资源的原因,通信更快速、有效,极大提高了程序的运行效率; 线程 不能单独执行,必须依赖存在于进程中。 PS:抽象的讲,进程和线程的关系就好比工厂和工人的关系,进程是工厂而线程是工厂里的工人。 并行与并发 基本概念 并行 :当系统有一个以上CPU时,每个CPU单独执行一个线程

linux UART串口驱动开发文档

*爱你&永不变心* 提交于 2020-02-29 09:39:11
内容简介: 介绍了Linux下的串口驱动的设计层次及接口, 并指出串口与TTY终端之间的关联层次(串口可作TTY终端使用), 以及Linux下的中断处理机制/中断共享机制, 还有串口缓冲机制当中涉及的软中断机制; 其中有关w83697/w83977 IC方面的知识, 具体参考相关手册, 对串口的配置寄存器有详细介绍, 本文不再进行说明. 目录索引: 一. Linux的串口接口及层次. 二. Linux的中断机制及中断共享机制. 三. Linux的软中断机制. 四. TTY与串口的具体关联. 一. Linux的串口接口及层次 . 串口是使用已经非常广的设备了, 因此在linux下面的支持已经很完善了, 具有统一的编程接口, 驱动开发者所要完整的工作就是针对不同的串口IC来做完成相应的配置宏, 这此配置宏包括读与写, 中断打开与关闭(如传送与接收中断), 接收状态处理, 有FIFO时还要处理FIFO的状态. 如下我们就首先切入这一部分, 具体了解一下与硬件串口IC相关的部分在驱动中的处理, 这一部分可以说是串口驱动中的最基础部分, 直接与硬件打交道, 完成最底层具体的串口数据传输. 1. 串口硬件资源的处理 . W83697及W83977在ep93xx板子上的映射的硬件物理空间如下: W83697: 0x20000000起1K空间. W83977: 0x30000000起1K空间.

Kubernetes1.3:QoS服务质量管理

我与影子孤独终老i 提交于 2020-02-28 20:40:55
Kubernetes1.3:QoS 服务 质量管理 在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行 服务 质量管理 。QoS的英文全称为"Quality of Service",中文名为"服务质量",它取决于用户对服务质量的预期,也就是期望的服务质量。对于POD来说,服务质量体现在两个指标上,一个指标是CPU,另一个指标是 内存 。在实际运行过程中,当NODE节点上内存资源紧张的时候,kubernetes根据POD具有的不同QoS标记,采取不同的处理策略。 在Kubernetes中,POD的QoS 服务 质量 一共有三个级别,如下图所示: 这三个QoS级别介绍,可以看下面表格: QoS级别 QoS介绍 BestEffort POD中的所有容器都没有指定CPU和内存的requests和limits,那么这个POD的QoS就是BestEffort级别 Burstable POD中只要有一个容器,这个容器requests和limits的设置同其他容器设置的不一致,那么这个POD的QoS就是Burstable级别 Guaranteed POD中所有容器都必须统一设置了limits,并且设置参数都一致,如果有一个容器要设置requests,那么所有容器都要设置,并设置参数同limits一致,那么这个POD的QoS就是Guaranteed级别

ubuntu下编译ffmpeg的过程

最后都变了- 提交于 2020-02-28 01:02:53
后续一段时间准备音视频相关知识的学习,所以先编译ffmpeg做练习用. 以最新版本的android api 29, ndk21, ffmpeg4.2,编译ffmpeg库文件. 1,环境配置, 1)安装yasm,如果没有安装会报nasm not found的错误. 下载 http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz 解压后,进入目录:cd yasm-1.3.0 执行配置 ./configure 编译 :make 安装 make install (这一步使用root权限) 2,ndk的配置, 1)下载 https://developer.android.google.cn/ndk/downloads/ 选择 linux版本的ndk 2)解压后,配置ndk环境 vim ~/.bashrc # 在文件末尾添加 export NDKROOT=/home/**/ndk/android-ndk-r21 exprot PATH=$NDKROOT:$PATH # 保存退出,更新一下环境变量 source ~/.bashrc 或者配置 ~/.profile文件,功能是类似的. .bashrc和.profile这两种配置环境参数的区别,大概时profile是以login方式进入bash环境运行的,意思是要用户登录才行;

电脑选购指南

人走茶凉 提交于 2020-02-27 14:20:18
电脑主要硬件配置就是CPU、显卡、内存、硬盘、屏幕等,其中CPU和显卡是本文的讲解重点。 CPU 现在我们能买到的主流CPU基本上都是英特尔和超威半导体的。也就是我们常说的Intel和AMD。 对于个人消费领域,AMD最常见的是锐龙、AMD FX、APU、速龙和闪龙系列,一般认为他们的性能依次减弱,锐龙最强,随后分别是AMD FX、APU和速龙,闪龙最弱。 由于市场大环境下,Intel在笔记本市场占据着绝对老大的位置,所以本文以Intel CPU做以详细讲解,也是为了更多想学习的朋友先了解下最主流的配置,并无黑AMD的意思,请A粉理解。 目前Intel CPU 酷睿系列的命名规则如下,也是目前笔记本最常见的CPU品牌。 在性能能上,同等代数的情况下i7>i5>i3,例如都是同样的八代CPU,i7-8700>i5-8600>i3-8100,这是因为Intel公司在规划设计上的定位,把i7作为高端,i5作为主流,i3作为入门。 在性能上,同系列产品,代数越高一般性能越强,例如同样都是酷睿i5,i5-7600>i5-6600,这是因为每一代使用的构架(可以理解为科技含量)不同,当然工艺也会有所差异,简单说代数越大即越新,使用的构架是当前最先进的构架,所以代数越大性能越强,当然也是会有特殊情况的有的上一代的高端产品,会比本代的入门产品要强点的,俗话说的好“瘦死骆驼比马大”比如i5-6600

mpstat 查看多核CPU负载状态

孤人 提交于 2020-02-27 13:56:08
mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。 用法: 它显示了系统中 CPU 的各种统计信息。–P 0 选项指示该命令显示所有 CPU 的统计信息,CPU从个数0开始,ALL为所有。 而不只是特定 CPU 的统计信息。参数 2 2 指示该命令每隔 2秒运行一次,共运行 2 次。 以上输出首先显示了所有 CPU 的合计指标,然后显示了每个 CPU 各自的指标。最后,在结尾处显示所有 CPU 的平均值。 含义: %user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)* 100 %nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)* 100 %sys 在internal时间段里,内核时间(%) (system/total)* 100 %iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)* 100 %irq