CPU 读取cache、内存、磁盘性能

google 工程师Jeff Dean 首先在他关于分布式系统的ppt文档列出来的,处处被引用的不少。缓存

1秒=10^3毫秒=10^6微妙=10^9纳秒=10^12皮秒网络

读 cache ns 级,读内存100 ns,从内存顺序读1MB 250,000ns,从磁盘读一MB30ms分布式

-----------------------------------------------------------google

Numbers Everyone Should Know线程

L1 cache reference 读取CPU的一级缓存 0.5 ns
Branch mispredict(转移、分支预测) 5 ns
L2 cache reference 读取CPU的二级缓存 7 ns
Mutex lock/unlock 互斥锁\解锁 100 ns
Main memory reference 读取内存数据??? 100 ns
Compress 1K bytes with Zippy 1k字节压缩 10,000 ns
Send 2K bytes over 1 Gbps network 在1Gbps的网络上发送2k字节 20,000 ns
Read 1 MB sequentially from memory 从内存顺序读取1MB 250,000 ns【0.25ms】
Round trip within same datacenter 从一个数据中心往返一次,ping一下 500,000 ns     【0.5ms】
Disk seek  磁盘搜索 10,000,000 ns 【10ms】
Read 1 MB sequentially from network 从网络上顺序读取1兆的数据 10,000,000 ns 【10ms】
Read 1 MB sequentially from disk 从磁盘里面读出1MB 30,000,000 ns 【30ms】
Send packet CA->Netherlands->CA 一个包的一次远程访问 150,000,000 ns【150ms】

 

从小到大:         进程

CPU的时钟频率:CPU运算时的工做的频率(1秒内发生的同步脉冲数)的简称。单位是Hz。    ip

CPU周期:读取一个指令节所需的时间内存

指令周期:读取并执行完一个指令所需的时间资源

CPU时间片:CPU分给每一个进程的时间文档

 

在Linux上CPU调度的最小单位时间片单位为5ms-800ms。

Linux调度器实际是识别task_struct进行调度。 不管进程线程,底层都对应一个task_struct,进程和线程的区别是共享资源的多少,两个进程间彻底不共享资源,两个线程间共享全部资源。

相关文章
相关标签/搜索