cpu参数

十二、深入理解Java内存模型

倾然丶 夕夏残阳落幕 提交于 2019-12-02 03:44:55
深入理解Java内存模型 【1】CPU和缓存的一致性 ​ 我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道。而计算机上面的数据,是存放在主存当中的,也就是计算机的物理内存啦。 ​ 刚开始,还相安无事的,但是随着CPU技术的发展,CPU的执行速度越来越快。而由于内存的技术并没有太大的变化,所以从内存中读取和写入数据的过程和CPU的执行速度比起来差距就会越来越大,这就导致CPU每次操作内存都要耗费很多等待时间。 ​ 所以,人们想出来了一个好的办法,就是在CPU和内存之间增加高速缓存。缓存的概念大家都知道,就是保存一份数据拷贝。他的特点是速度快,内存小,并且昂贵。 那么,程序的执行过程就变成了: 当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高速缓存中的数据刷新到主存当中。 ​ 在CPU和主存之间增加缓存,在多线程场景下就可能存在 缓存一致性问题 ,也就是说,在多核CPU中,每个核的自己的缓存中,关于同一个数据的缓存内容可能不一致。 【2】处理器优化和指令重排 上面提到在在CPU和主存之间增加缓存,在多线程场景下会存在 缓存一致性问题 。除了这种情况,还有一种硬件问题也比较重要

Linux vmstat命令实战详解

安稳与你 提交于 2019-12-02 03:41:33
http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如: root@ubuntu:~# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo cs us sy id wa 2表示每个两秒采集一次服务器状态,1表示只采集一次。 实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如: root@ubuntu:~# vmstat procs -----------memory----------

Linux vmstat命令实战详解

不羁的心 提交于 2019-12-02 03:41:20
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如: root@ubuntu:~# vmstat 2 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0 2表示每个两秒采集一次服务器状态,1表示只采集一次。 实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如: root@ubuntu:~# vmstat 2 procs -----------memory---------- --

caffe中batch norm源码阅读

只谈情不闲聊 提交于 2019-12-02 02:39:07
1. batch norm 输入batch norm层的数据为[N, C, H, W], 该层计算得到均值为C个,方差为C个,输出数据为[N, C, H, W]. <1> 形象点说,均值的计算过程为: (1) 即对batch中相同索引的通道数取平均值,所以最终计算得到的均值为C个,方差的计算过程与此相同。 <2> batch norm层的作用: a. 均值: (2) b. 方差: (3) c. 归一化: (4) 2. caffe中batch_norm_layer.cpp中的LayerSetUp函数: 1 template <typename Dtype> 2 void BatchNormLayer<Dtype>::LayerSetUp(const vector<Blob<Dtype>*>& bottom, 3 const vector<Blob<Dtype>*>& top) { 4 BatchNormParameter param = this->layer_param_.batch_norm_param(); //读取deploy中moving_average_fraction参数值 5 moving_average_fraction_ = param.moving_average_fraction(); //改变量在batch_norm_layer.hpp中的定义为bool

十、自定义ThreadPoolExecutor线程池

大城市里の小女人 提交于 2019-12-01 20:27:01
自定义ThreadPoolExecutor线程池 自定义线程池需要遵循的规则 【1】线程池大小的设置 1、计算密集型: 顾名思义就是应用需要非常多的CPU计算资源,在多核CPU时代,我们要让每一个CPU核心都参与计算,将CPU的性能充分利用起来,这样才算是没有浪费服务器配置,如果在非常好的服务器配置上还运行着单线程程序那将是多么重大的浪费。对于计算密集型的应用,完全是靠CPU的核数来工作,所以为了让它的优势完全发挥出来,避免过多的线程上下文切换,比较理想方案是: ​ 线程数 = CPU核数+1,也可以设置成CPU核数*2,但还要看JDK的版本以及CPU配置(服务器的CPU有超线程)。 ​ 一般设置CPU * 2即可。 2、IO密集型 我们现在做的开发大部分都是WEB应用,涉及到大量的网络传输,不仅如此,与数据库,与缓存间的交互也涉及到IO,一旦发生IO,线程就会处于等待状态,当IO结束,数据准备好后,线程才会继续执行。因此从这里可以发现,对于IO密集型的应用,我们可以多设置一些线程池中线程的数量,这样就能让在等待IO的这段时间内,线程可以去做其它事,提高并发处理效率。那么这个线程池的数据量是不是可以随便设置呢?当然不是的,请一定要记得,线程上下文切换是有代价的。目前总结了一套公式,对于IO密集型应用: 线程数 = CPU核心数/(1-阻塞系数) 这个阻塞系数一般为0.8~0.9之间

查看linux系统性能

大城市里の小女人 提交于 2019-12-01 16:45:53
概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。 uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其中一些命令需要安装sysstat包,有一些由procps包提供。这些命令的输出,有助于快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,也就是所谓的 USE方法 。 下面我们来逐一介绍下这些命令,有关这些命令更多的参数和说明,请参照命令的手册。 uptime $ uptime 23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02 这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。 命令的输出分别表示1分钟、5分钟、15分钟的平均负载情况。通过这三个数据,可以了解服务器负载是在趋于紧张还是区域缓解。如果1分钟平均负载很 高,而15分钟平均负载很低,说明服务器正在命令高负载情况

linux工具之iostat

℡╲_俬逩灬. 提交于 2019-12-01 16:16:32
iostat 是I/O statistics(输入/输出统计)缩写iostat工具将对系统磁磁盘活动进行监视iostat属于sysstat软件包可以用yum install sysstat 直接安装。 命令参数: -C 显示CPU使用情况 -d 显示磁盘使用情况 -k 以KB为单位显示 -m 以M为单位显示 -N 显示磁盘阵列(LVM)信息 -n 显示NFS使用情况 -p 显示磁盘和分区的情况 -t 显示终端和CPU的信息 -x 显示详细信息 -V 显示版本信息 使用实例: 1)显示所有设备负载情况 iostat [root@natasha etc]# iostat Linux 2.6.32-431.el6.i686 (natasha) 11/24/2015 _i686_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.01 0.13 0.45 1.04 0.00 98.37 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 7.91 253.69 221.92 1740248 1522344 scd0 0.01 0.05 0.00 360 0 dm-0 35.80 249.51 221.89 1711602 1522160 dm-1 0.05 0

Linux工具之vmstat

主宰稳场 提交于 2019-12-01 16:15:26
vmstat (virtual memory statistics,虚拟内存统计)的缩写。可以对操作系统的虚拟内存、进程、CPU活动进行监控。 1.命令格式 vmstat [-a] [-n] [-S unit] [delay [ count]] vmstat [-s] [-n] [-S unit] vmstat [-m] [-n] [delay [ count]] vmstat [-d] [-n] [delay [ count]] vmstat [-p disk partition] [-n] [delay [ count]] vmstat [-f] vmstat [-V] 2、命令功能 用来显示虚拟内存的信息 3.命令参数 -a:显示活跃和非活跃内存 -f:显示从系统启动至今的fork数量 。 -m:显示slabinfo -n:只在开始时显示一次各字段名称。 -s:显示内存相关统计信息及多种系统活动数量。 delay:刷新时间间隔。如果不指定,只显示一条结果。 count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。 -d:显示磁盘相关统计信息。 -p:显示指定磁盘分区统计信息 -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes) -V

Linux工具之sar

守給你的承諾、 提交于 2019-12-01 16:15:09
1、sar简介 sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告, 包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。 2、语法参数 sar [options] [-A] [-o file] t [n] 其中: t为采样间隔,n为采样次数,默认值是1; -o file表示将命令结果以二进制格式存放在文件中,file 是文件名。 options 为命令行选项,sar命令常用选项如下: -A:所有报告的总和 -u:输出CPU使用情况的统计信息 -v:输出inode、文件和其他内核表的统计信息 -d:输出每一个块设备的活动信息 -r:输出内存和交换空间的统计信息 -b:显示I/O和传送速率的统计信息 -a:文件读写情况 -c:输出进程统计信息,每秒创建的进程数 -R:输出内存页面的统计信息 -y:终端设备活动情况 -w:输出系统交换活动信息 3、CPU资源监控 每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件3.test中,需键入如下命令: 输出项说明: CPU:all 表示统计信息为所有 CPU 的平均值。 %user:显示在用户级别

转载: redis 使用RedisDesktopManager查看Redis的工作状态——INFO命令详解

你。 提交于 2019-12-01 16:12:52
参考:http://ghoulich.xninja.org/2016/10/15/how-to-monitor-redis-status/ redis-desktop-manager-0.9.3.817 链接:https://pan.baidu.com/s/1B9Ia8I8NJXZXpi37aLoqbw 提取码:kh8n INFO命令会返回Redis服务器的状态信息和统计数据,计算机可以很简单地解析这些返回数据,用户也可以轻松地阅读这些返回数据。 可以通过以下的可选参数,选择查看特定分段的服务器信息: server :Redis服务器相关的通用信息 clients :客户端连接的相关信息 memory :内存消耗的相关信息 persistence :RDB(Redis DataBase)和AOF(Append-Only File)的相关信息 stats :通用统计数据 replication :主/从复制的相关信息 cpu :CPU消耗的统计数据 commandstats :Redis命令的统计数据 cluster :Redis集群的相关信息 keyspace :数据库相关的统计数据 INFO命令还可以使用以下参数: all :返回所有的服务器信息 default :只返回默认的信息集合 当不提供任何参数时,默认会使用 default 选项。 返回值 返回值为批量字符串