cpu时间

java并发-原子性

走远了吗. 提交于 2020-01-10 19:30:41
原子性就是指该操作是不可再分的。 java.util.concurrent.atomic中有一组使用无锁算法实现的原子操作类。AtomicInteger、AtomicBoolean、AtomicLong 外还有 AtomicReference 。它们分别封装了对整数、整数数组、长整型、长整型数组和普通对象的多线程安全操作。 这些都是居于CAS算法实现的。CAS即:Compare and Swap,是比较并交换的意思。 CAS 简介 CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 非阻塞算法 (nonblocking algorithms) 一个线程的失败或者挂起不应该影响其他线程的失败或挂起的算法。 现代的CPU提供了特殊的指令,可以自动更新共享数据,而且能够检测到其他线程的干扰,而 compareAndSet() 就用这些代替了锁定。 拿出AtomicInteger来研究在没有锁的情况下是如何做到数据正确性的。 private volatile int value; 首先毫无以为,在没有锁的机制下可能需要借助volatile原语,保证线程间的数据是可见的(共享的)。 这样才获取变量的值的时候才能直接读取。 public final int get() { return value; } 然后来看看

ping丢包故障处理方法

天大地大妈咪最大 提交于 2020-01-10 18:26:54
ping丢包故障处理方法 1. Ping丢包故障定位思路故障分析 Ping丢包是指Ping报文在网络中传输,由于各种原因(如线路过长、网络拥塞等)而产生部分Ping报文丢弃的现象。在使用Ping命令,出现Ping丢包的现象时,第一步需要确定Ping丢包的网络位置,其次是确定Ping丢包的故障原因,然后依据定位的故障原因再进行解决。 确认Ping丢包的网络位置时一般采用逐段Ping的方法,可以将Ping丢包故障最终确定在直连网段之间。 确认Ping丢包的故障原因一般采用流量统计的方法,通过流量统计可以知道丢弃报文的具体位置、判断故障原因。 导致Ping丢包的原因非常多,也非常复杂,实际故障定位中需要综合考虑各种因素。本文档针对常见Ping丢包故障分析,总结出以下几种常见故障: 物理环境故障;网络环路;ARP问题;ICMP问题。 需要注意并不是Ping丢包就一定表示网络质量差,某些情况下虽然Ping丢包,但是业务是正常的。分析Ping丢包时注意以下两点: 当设备对报文进行硬件转发,速度非常快,就不会丢包。例如,Ping设备端口下挂的电脑。当报文需要CPU进行处理时,CPU繁忙就会丢包。例如:Ping设备上的IP地址。 为了防止网络×××对设备造成影响,设备具有CPU保护功能,对于超过CPCAR(Control Plane Committed Access Rate)值的ARP

Linux系统巡检脚本

孤街浪徒 提交于 2020-01-10 18:01:20
#!/bin/bash # auth:Bertram # created Time : 2019-12-26 # func:sys info check # sys:centos6.x/7.x ------------------------------------------------------------------------------------------------------------------------------------- [ $(id -u) -ne 0 ] && echo "请用root用户执行此脚本!" && exit 1 sysversion=$(rpm -q centos-release|cut -d- -f3) line="-------------------------------------------------" [ -d logs ] || mkdir logs #sys_check_file="logs/$(ip a show dev eth0|grep -w inet|awk '{print $2}'|awk -F '/' '{print $1}')-`date +%Y%m%d`.txt" sys_check_file="logs/$(ifconfig |awk 'NR==2{print $2}')-`date +%Y

操作系统的发展史

别说谁变了你拦得住时间么 提交于 2020-01-10 17:57:04
操作系统的发展史 一、手工操作———穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。 手工操作方式两个特点: 用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。 CPU 等待手工操作。CPU的利用不充分。 20世纪50年代后期,出现 人机矛盾 。:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。这样就出现了成 批处理 。 二、批处理——磁带存储 2.1 联机批处理系统 [ ]( http://ww 主机与输入机之间增加一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入磁带,依次把磁带上的用户作业读入主机内存并执行并把计算结果向输出机输出。完成了上一批作业后,监督程序又从输入机上输入另一批作业,保存在磁带上,并按上述步骤重复处理。

104 操作系统的发展史

▼魔方 西西 提交于 2020-01-10 17:56:24
一、第一代计算机(1946年) 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 利用真空管和插线板 真空管在我们运行操作计算机的时候容易烧掉,就是破损掉 采用手工操做——穿孔卡片 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。 手工操作方式两个特点: 用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。 CPU 等待手工操作。CPU的利用不充分。 工作过程: 程序员在墙上的机时表预约一段时间,然后程序员拿着他的插件版到机房里,将自己的插件板街道计算机里,这几个小时内他独享整个计算机资源,后面的一批人都得等着(两万多个真空管经常会有被烧坏的情况出现)。 后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板 优点: 程序员在申请的时间段内独享整个资源,可以即时地调试自己的程序(有bug可以立刻处理) 缺点: 浪费计算机资源,一个时间段内只有一个人用。 注意:同一时刻只有一个程序在内存中,被cpu调用执行,比方说10个程序的执行,是串行的 注意: 20世纪50年代后期,出现 人机矛盾 。

Linux如何查看和控制进程

筅森魡賤 提交于 2020-01-10 11:14:57
Linux如何查看和控制进程 前言:程序是保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中处于动态执行状态的计算机程序。在Linux系统中,每个程序启动后可以创建一个或多个进程。例如,提供Web服务的httpd程序,当有大量用户同时访问Web页面时,httpd程序可能会创建多个进程来提供服务。 程序 保存在硬盘、光盘等介质中的可执行代码和数据 静态保存的代码 进程 在 CPU 及内存中运行的程序代码 动态执行的代码 父、子进程 每个进程可以创建一个或多个进程 下面我们将一起来学习查看进程信息及控制进程相关的操作命令。 一、查看进程 使用不同的命令工具可以从不同的角度查看进程状态。 常用的进程查看命令 1. ps命令——查看静态的进程统计信息(Processes Statistic) 常见的选项: a:显示当前终端下的所有进程信息,包括其他用户的进程。 u:使用以用户为主的格式输出进程信息。 x:显示当前用户在所有终端下的进程。 -e:显示系统内的所有进程信息。 -l:使用长(long)格式显示进程信息。 -f:使用完整的(full)格式显示进程信息。 需要注意的是,有一部分选项是不带“-”前缀的(添加“-”前缀后含义可能会有出入)。习惯上将上述选项组合在一起使用,如,“ps aux”或“ps -elf” 示例1:ps aux

sar命令详解

心不动则不痛 提交于 2020-01-10 09:07:33
sar 是非常强大性能分析命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、 cpu 中断、网络等性能数据。 sar 命令行的常用格式: sar [options] [-A] [-o file] t [n] 在命令行中, n 和 t 两个参数组合起来定义采样间隔和次数, t 为采样间隔, 是必须有的参数, n 为采样次数,是可选的,默认值是 1, -o file 表示将命令结果以二进制格式存放在文件中, file 在此处不是关键字,是文件名。 options 为命令行选项, sar 命令的选项很多,下面只列出常用选项: -A:所有报告的总和。 -u: CPU 利用率 -v:进程、节点、文件和锁表状态。  -p:像是当前系统中指定 CPU 使用信息。 -d:硬盘使用报告。 -r:显示系统内存的使用情况。  -n: 显示网络运行状态。 参数后面可跟 DEV、 EDEV、 SOCK 和 FULL。 DEV 显示网络接口信息, EDEV 显示网络错误的统计数据, SOCK 显示套接字信息, FULL 显示前三参数所以信息。  -q:显示运行队列的大小,它与系统当时的平均负载相同  -B:内存分页情况  -R:显示进程在采样时间内的活动情况。 -g:串口 I/O 的情况。 -b:缓冲区使用情况。 -a:文件读写情况。 -c:系统调用情况。

计算机基础系列一:计算机硬件

微笑、不失礼 提交于 2020-01-10 08:14:29
1、编程语言的作用及与操作系统和硬件的关系   一个完整的计算机系统包括硬件、操作系统、软件(即程序员开发的各种软件)三部分组成。   各程序员开发的软件若直接调用计算机的硬件,如硬盘读取、音频播放等,则软件不仅编写复杂同时影响开发效率,因此程序员开发的软件需通过计算机操作系统间接调用计算机各硬件。如下图:    即编写各种计算机软件的编程语言可看作程序员与计算机沟通的介质,程序员通过编程语言编写软件从而达到控制计算机的目的。 2、计算机硬件   计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。简言之,计算机硬件是构成计算机的物质基础,是计算机系统的核心。从外观上来看,微机由主机箱和外部设备组成。   根据计算机之父冯·诺依曼的划分,计算机由运算器、控制器、存储器、输入设备、输出设备五部分组成。 通常把运算器与控制器合称为中央处理器( Central Processing Unit ,CPU )。 其中: CPU是计算机的核心,负责计算机的运算及程序控制; 存储器是计算机的记忆设备,用来存放程序和数据 输入设备是计算机接收外部信息和数据的设备。常用输入设备有:键盘、鼠标、扫描仪等 输入设备是输出计算机处理后的数据。常用的输出设备有:显示器、打印机等 在计算机中,计算机各硬件是通过各类总线连接在一起的。 2.1处理器

互联网三高架构之高并发、高性能、高可用的理解

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-10 06:48:14
互联网三高架构:高并发、高性能、高可用,简称三高(3H) 互联网应用系统开发肯定经常会看到高并发和高性能这两个词,可谓是耳熟能详,而具体的含义和关系真的如你所想的,真正的理解了吗? 先来看一个例子: 一个蓄水池,是1m*1m*1m=1立方米大小,有一个出水口,出水口每秒钟流出0.1立方米,那么这个蓄水池的并发量是1立方米,出水速度是0.1立方米/秒。 如果增加一个出水口,都是每秒钟流出0.1立方米,那么这个蓄水池的并发量没变,但是出水速度变成了0.2立方米/秒。 同理,增大了出水口,蓄水池的出水速度也变快了。 上面我们很容易知道,并发量是一个容量的概念,性能就是出水速度,而且有下面这些结果。 增大蓄水池的长宽高,可以增加并发能力。 出水口如果扩大了出口大小,则可以提高出水的速度,也就是性能提高了。 增加出水口的数量,则是增加了并行处理的能力,同样可以提高性能。 那么对照我们计算机中,我们的系统中,是怎么样的结果呢? 增加服务器的内存大小,可以增加并发量。因为内存增加了,就可以开更多的进程,更多的线程,也可以扩大任务队列的大小。 提高cpu的主频速度,优化程序,可以提高性能。cpu更快了,程序优化的更好了,处理单个任务的时间也就更短了。 增加多核甚至分布式服务器数量,也可以提高性能,同时提高并发量。 如果只是性能提高了,并发量是否也能提高呢? 如果我们静态的理解并发量

DPDK QoS之分层调度器

喜欢而已 提交于 2020-01-10 04:54:44
原创翻译,转载请注明出处。 分层调度器的时机主要体现在TX侧,正好在传递报文之前。它的主要目的是在每个网络节点按照服务级别协议来对不同的流量分类和对不同的用户的报文区分优先级并排序。 一、概述 分层调度器跟以前使用网络处理器实现的每条流或一组流的报文队列和调度的流量管理器很相似。它看起来像在传输之前的一个临时存储了很大数量报文的缓冲区(入队操作)。当网卡TX请求更多报文去发送的时候,这些报文递交给网卡TX的预定义的SLA的报文选择逻辑模块之后会删除。(出队操作)。 分层调度器对大数量的报文队列做了优化。当只需要小数量的队列时,会使用消息传递队列来替代。更多详情参考"Worst Case Scenarios for Performance"。 二、分层调度 如下图: 分层的第一级是 Ethernet TX 1/10/40端口,之后的分级是子端口,流水线,流分类和队列。 有代表性的是,每一个子端口表示一个预定义好的用户组,而每一个流水线表示一个个人用户。每一个流分类表示不同的流量类型,流量类型包含了具体的丢包率,时延,抖动等需求,比如语音,视频或数据传输。每一个队列从一到多个相同用户相同类型的连接里接待(原文是动词:host)报文。 下面的表格对每个分层做了功能描述: # 级别 兄弟 功能描述 1 Port 0 1、以太端口1/10/40 GbE输出; 2、多个端口具有相同的优先级