架构师基础三

架构师基础三

一、系统调用

 

Linux为进程设计的两种运行级别,进程可以再两种模式之间切换。进程通常运行在用户态,这时候可以使用CPU和内存完成一些任务(数学计算),而当进程需要对硬件外设进行操作的时候(读取磁盘、发送网络数据)就必须切换到内核态,这时候它将拥有更多的权力来操控整个计算机,当内核态任务完成后,进程又切换回用户态。

二、持久连接

Keep-Alive即在一次TCP连接中持续发送多份数据而不断开连接。可以想象HTTP长连接的实施需要浏览器和Web服务器的共同协作,缺一不可。一方面,浏览器需要保持一个TCP连接并重复利用,不断地发送多个请求,另一方面,服务器不能过早地主动关闭连接。

这个时候需要HTTP请求头:Connection:Keep-Alive

而Web服务器中长连接是默认支持:如:KeepAlive Off/On

我们不希望浏览器和Web服务器使用长连接方式时,我们可以关闭服务器的长连接支持。只需要关闭一方就可以了。

但是长连接超时时间过长会影响系统的性能:超时时间过长导致资源无效占用而引发的损失一经超过了由于重复连接所造成的损失。

三、IO模型

网络IO和磁盘IO?

磁盘访问来加快磁盘IO速度,购买大量独享网络带宽网络适配器可以提高网络IO的速度。但是问题在于,这些IO操作需要由内核系统调用来完成,同时系统调用显然需要由CPU来调度,而CPU的速度毫无疑问非常快,而cpu跟IO操合作使用了DMA方式。



 

 
 

猜你喜欢

转载自he-wen.iteye.com/blog/1574932