cpu

第 13 章 sar - System Activity Reporter

01-01
  sar 是 System Activity Reporter(系统活动情况报告)的缩写. sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态.它的特点是可以连续对系统取样,获得大量的取样数据:取样数据和分析的结果都可以存入文件,所需的负载很小.sar是目前Linux上最为全面的系统性能分析工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况.系统调用的使用情况.串口.CPU效率.内存使用状况.进程活动及IPC有关的活动等,使用也是较为复杂.

12.2. mcelog - Decode kernel machine check log on x86 machines

01-01
$ sudo apt-get install mcelog Decode machine check ASCII output from kernel logs Options: --cpu CPU Set CPU type CPU to decode (see below for valid types) --cpumhz MHZ Set CPU Mhz to decode time (output unreliable, not needed on new kernels) --raw (w

3.3. atop - AT Computing's System & Process Monitor

01-01
  ATOP - ubuntu                        2013/03/12  16:09:34                        ------                        10s elapsed PRC |  sys    0.03s  |  user   0.01s |  #proc    104  |  #tslpi   184  |  #tslpu     0  | #zombie    0  |  #exit      0  | CP

第 3 章 CPU

01-01
目录 3.1. uptime - Tell how long the system has been running. 3.2. top - display Linux tasks 3.3. atop - AT Computing's System & Process Monitor 3.4. htop - interactive process viewer 3.1. uptime - Tell how long the system has been running. uptime # up

2.2. vmstat - Report virtual memory statistics

01-01
vmstat # vmstat procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 203668 53352 2878928 0 0 0 2 4 6 0 0 100 0 procs: r ;在运行队列中等待的进程数 b ;在等待io的进程数 w ;可以进入运行队列但被替换

Linux IO磁盘篇整理小记

12-31
起源 本篇起源于对Kafka的一个问题排查,大致的原因是达到磁盘性能瓶颈.在追踪问题的时候用到iostat -x这命令,详细示例如下: 可以看到%idle(%idle小于70%说明IO压力已经比较大了)和%util的值都处于非正常状态.不过这里并不讲述Kafka的问题排查过程,反而是来讲述下IO指标的一些知识.每次遇到需要查看磁盘相关信息的时候,一些指标都会或多或少的遗忘,还要翻阅各种资料了解,故这里对相关的信息做一个相关的整理,在巩固相关知识点的同时也方便以后的查阅. 上面示例中的各个指标的含

【linux】free命令中cached和buffers的区别

12-30
一.命令 1 2 3 4 5 [[email protected] ~]# free -m              total       used       free     shared    buffers     cached Mem:          7869       7651        218          1        191       5081 -/+ buffers/cache:       2378       5490 Swap:          478

Volatile的作用

12-05
众所周知,volatile关键字可以让线程的修改立刻通知其他的线程,从而达到数据一致的作用.那么它具体涉及到哪些内容呢? 关于缓存 计算机最大的存储空间就是磁盘(硬盘),但是访问的速度也是最慢的,价格最便宜:再就是内存,容量更小,造价更高,但是速度也更快.不过跟cpu的计算速度比起来,那就太慢了.可以想像,如果cpu每次计算都要从内存读取数据,那大部分的时间估计都浪费在这上面了.所以就引入了缓存的概: 缓存的结构大概时这样的,从1级到3级速度越来越慢,最后通过总线与内存连接.如果时多核多cpu,

Nodejs·进程

12-04
之前对这部分的内容很感兴趣,没想到读起来有点晦涩,还是因为对服务器的知识不是很了解. 说道服务器一般人都会想到tomcat或者Jboss或者weblogic,现在流行起来的Node总让人不太放心,JS代码也能做服务器?其实不然,首先一个误区就是Node的服务器是JS写出来的....其实它只有表面暴露给用户使用的模块是用js写的,底层的很多东西还是由C/C++完成的.如果运行在不同的操作系统上,node还会基于操作系统切换底层的实现方式. 再说说Nodejs的特性--最让人印象深刻的就是单线程事件

Windows下TensorFlow安装指南(图文版)

12-04
随着深度学习概念火起来,TensorFlow也跟着成为业界流行的深度学习框架.它采用CPU+GPU的并行计算模式,使得神经网络可以有效的并行计算,从以前的三层网络到现在的深层网络,深度学习+tensorflow已经开始深入人心. 笔者也本着投石问路的心态,尝试玩一玩这个高大上的东西.那么先从安装开始吧~ 如果有FQ工具的话,安装是很简单的. 安装Python3.5+ (注意tensorflow只支持3.5以上的版本,2.7是安装不了的) 我这里下载的是3.5.2,注意要找到对应版本的python

服务器负载监控以及文字处理脚本

12-04
运维监控总少不了一些脚本来监控自己的机器,博主自己写了个监控,并通过sleep来控制输出的间隔时间.如果想要获取其他的相关信息,可以采用类似的方式,添加即可. 首先是服务器的负载监控脚本,主要输出了 内存,CPU,网络连接等信息 #!/bin/sh while true do TOP=`top -b -n 2 | grep Cpu |tail -2` FREE=`free -m` SWAP=`echo $FREE | grep Swap | cut -d":" -f 4` MEM=`e

图解NodeJS【基于事件、回调的单线程高性能服务器】原理

12-04
刚开始了解Node感觉很吊,各种说高性能,可是一直不理解为什么单线程会比多线程快?为什么异步IO比非阻塞IO快?因此,本篇在阅读相关书籍后,根据自己的理解,整理此文,如有错误,仅代表理论不精,必当修改,以免误导他人.还请多多指正..... 关于阻塞IO和非阻塞IO 系统内核只有两种IO模式-- 阻塞IO和非阻塞IO.这里的IO可不仅仅是读取文件内容,而是更为广泛的概念.比如Socket啊,网络Socket,磁盘读取等等,这些相比于CPU计算都是很耗时的. 下图为阻塞IO的工作模式: 阻塞IO在需

Java并发和多线程那些事儿

01-17
我记得我接触电脑的时候是在小学三年级的时候,那是1995年,那年发布了windows95,但是我学习的时候还是只是dos系统,简单对于文件的一些命令操作还有五笔 在过去的那个年代,电脑都是单CPU,也就是单任务处理:多任务处理到后来才慢慢发展起来,多任务代表电脑在同一时刻内可以处理很多并行操作,这样CPU被利用率高了,多个任务都可以共享.多任务处理的出现对于软件开发者来说需要做更多的事,就是资源释放,也就是垃圾回收,在软件不用的时候要释放资源,这样就可以给其他软件腾出资源来使用,就像ios内存机

CPU内部组成结构及指令执行过程

05-15
  计算机的基本硬件系统由运算器.控制器.存储器和输入.输出设备五大部件组成.运算器和控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU).   CPU的功能   (1)程序控制   CPU通过执行指令来控制程序的执行顺序,这是CPU的重要职能.   (2)操作控制   一条指令功能的实现需要若干个操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作.   (3)时间控制   CPU对各种操

每个程序员都应该了解的内存知识(2)-CPU caches

04-13
英文原帖:http://lwn.net/Articles/252125/ 原翻译贴:http://www.oschina.net/translate/what-every-programmer-should-know-about-cpu-cache-part2       现在的CPU比25年前要精密得多了.在那个年代,CPU的频率与内存总线的频率基本在同一层面上.内存的访问速度仅比寄存器慢那么一点点.但是,这一局面在上世纪90年代被打破了.CPU的频率大大提升,但内存总线的频率与内存芯片的性能

每个程序员都应该了解的内存知识(1)

04-13
英文原帖:http://lwn.net/Articles/250967/ 原翻译贴:http://www.oschina.net/translate/what-every-programmer-should-know-about-memory-part1 在原翻译的基础上,进行了一些修改. 1 简介       早期计算机比现在更为简单.系统的各种组件(子系统)例如CPU,内存,大容量存储器和网口,由于被共同开发因而有非常均衡的表现.例如,内存和网口并不比CPU在提供数据的时候更(特别的)快.

设计模式详解之外观模式

03-15
外观模式(Facade):外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例) 实现类: public class CPU { public void startup(){ System.out.println("cpu startup!"); } public void shutdown(){

OpenCL 学习step by step (3) 存储kernel文件为二进制

09-06
     在教程二中,我们通过函数convertToString,把kernel源文件读到一个string串中,然后用函数clCreateProgramWithSource装入程序对象,再调用函数clBuildProgram编译程序对象.其实我们也可以直接调用二进制kernel文件,这样,当不想把kernel文件给别人看的时候,起到一定的保密作用.在本教程中,我们会把读入的源文件存储一个二进制文件中,并且还会建立一个计时器类,用来记录数组加法在cpu和gpu端分别执行的时间.      首先我们

AMD OpenCL大学课程(6)

01-31
GPU架构 内容包括: 1.OpenCLspec和多核硬件的对应关系 AMD GPU架构 Nvdia GPU架构 Cell Broadband Engine 2.一些关于OpenCL的特殊主题 OpenCL编译系统 Installable client driver   首先我们可能有疑问,既然OpenCL具有平台无关性,我们为什么还要去研究不同厂商的特殊硬件设备呢? 了解程序中的循环和数据怎样映射到OpenCL Kernel中,便于我们提高代码质量,获得更高的性能. 了解AMD和Nvdia显卡

OpenCL memory object 之 传输优化

12-18
首先我们了解一些优化时候的术语及其定义:   1.deferred allocation(延迟分配),      在第一次使用memory object传输数据时,runtime才对memory object真正分配空间. 这样减少了资源浪费,但第一次使用时要慢一些[一个context多个设备,一个memory object多个location,见前面的blog].     2.peak interconntect bandwith(峰值内联带宽)      host和device之间通过PCI