Linux-磁盘及网络IO工作方式解析】的更多相关文章

PIO与DMA 有必要简单地说说慢速I/O设备和内存之间的数据传输方式. PIO我们拿磁盘来说,很早以前,磁盘和内存之间的数据传输是需要CPU控制的,也就是说如果我们读取磁盘文件到内存中,数据要经过CPU存储转发,这种方式称为PIO.显然这种方式非常不合理,需要占用大量的CPU时间来读取文件,造成文件访问时系统几乎停止响应. DMA后来,DMA(直接内存访问,Direct Memory Access)取代了PIO,它可以不经过CPU而直接进行磁盘和内存的数据交换.在DMA模式下,CPU只需要向D…
I/O( INPUT OUTPUT),包括文件I/O.网络I/O. 计算机世界里的速度鄙视: 内存读数据:纳秒级别. 千兆网卡读数据:微妙级别.1微秒=1000纳秒,网卡比内存慢了千倍. 磁盘读数据:毫秒级别.1毫秒=10万纳秒 ,硬盘比内存慢了10万倍. CPU一个时钟周期1纳秒上下,内存算是比较接近CPU的,其他都等不起. CPU 处理数据的速度远大于I/O准备数据的速度 . 任何编程语言都会遇到这种CPU处理速度和I/O速度不匹配的问题! 在网络编程中如何进行网络I/O优化:怎么高效地利用…
ref: 深入分析 java web 技术内幕 2.3 两台计算机之间进行数据的传输需要经过很多步骤.首先有相互沟通的意向,然后还要有沟通的通道:通过电话还是面对面交流(物理链路).最后,两个人说话的步调一致,明白什么时候自己说话,什么时候对方说话(通信协议).本文简单介绍通信协议以及如何完成数据的传输. TCP 状态转化 首先看看如何建立和关闭 TCP 连接,建立连接&传输过程中状态的变化见下图: 说明: 1.CLOSED:起始点,在超时或者连接关闭时进入此状态: 2.LISTEN:Serve…
1 IO路径 从内核角度看,进程产生的IO路径主要有三条: 缓存IO:系统绝大部分IO走的这种形式,充分利用文件系统层的page cache所带来的优势.应用程序产生的IO经系统调用落入page cache之后便可以直接返回,page cache中的缓存数据由内核回写线程在适当时机同步到底层的存储介质上,当然应用程序也可以主动发起回写过程(如fsync系统调用)来确保数据尽快同步打扫存储介质上,从而避免系统崩溃或者掉电带来的数据不一致性: 非缓存IO(带蓄流):这种IO绕过文件系统层的cache…
修改 vi /etc/sysctl.conf后执行命令 sysctl -p立即生效 首先,系统的不同也会导致 /etc/下的 文件的不同,原本powerpc 环境下 在 /etc/init.d/下有个 bootmisc.sh 的脚本.启动启动的时候会执行该脚本. 但是我现在的 环境是 fedora15 ,找不到 bootmisc.sh 文件了.但是在 /etc/rc.d 中有个 rc.local文件,当正常启动时 会加载该文件,所以在 rc.local 文件中 增加命令 /sbin/sysctl…
本文讨论的背景是Linux环境下的network IO. IO发生时涉及的对象和步骤: 对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel).当一个read操作发生时,它会等待内核经历两个阶段: 1  内核数据准备 (Waiting for the data to be ready) 2  内核把数据从内核空间,拷贝到用户空间中 (Copying the data from…
通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入.文件IO方式操作GPIO,使用到了4个函数open.close.read.write. 首先,看看系统中有没有“/sys/class/gpio”这个文件夹.如果没有请在编译内核的时候加入  Devi…
点击阅读原文 一.概述 通过 sysfs 方式控制 GPIO,先访问 /sys/class/gpio 目录,向 export 文件写入 GPIO 编号,使得该 GPIO 的操作接口从内核空间暴露到用户空间,GPIO 的操作接口包括 direction 和 value 等,direction 控制 GPIO 方向,而 value 可控制 GPIO 输出或获得 GPIO 输入.文件 IO 方式操作 GPIO,使用到了4个函数 open.close.read.write. 首先,看看系统中有没有“/s…
通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入.文件IO方式操作GPIO,使用到了4个函数open.close.read.write. 首先,看看系统中有没有“/sys/class/gpio”这个文件夹.如果没有请在编译内核的时候加入 Devic…
下载地址:http://jmeter-plugins.org/downloads/all/ PerfMon: 用来监控Server的CPU.I/O.Memory等情况 ServerAgent-2.2.1.zip 用法:PerfMon解压后放到被测试的服务器上,并运./startAgent.sh,默认工作在4444端口 1.检查linux上端口是否启动:netstat -apnt|grep 4444 2.检查jmeter机器到linux防火墙:telnet ip 4444 JMeterPlugin…