操作系统——分页式内存管理
摘要:为什么要引入内存管理?答:多道程序并发执行,共享的不仅仅只有处理器,还有内存,并发执行不过不进行内存管理,必将会导致内存中数据的混乱,以至于限制了进程的并发执行。 扩充内存的两种方式?答:覆盖和交换技术是扩充内存的两种方法 1:覆盖技术。覆盖的基本思想是:由于程序运行时并非任何时候都需要访问程序和数
阅读全文
操作系统内存详解
摘要:进程的简单介绍进程是占有资源的最小单位,这个资源当然包括内存。在现代操作系统中,每个进程所能访问的内存是互相独立的(一些交换区除外)。而进程中的线程可以共享进程所分配的内存空间。在操作系统的角度来看,进程=程序+数据+PCB(进程控制块) 没有内存抽象在早些的操作系统中,并没有引入内存抽象的概念。程
阅读全文
Linux中Too many open files 问题分析和解决
摘要:今天某个服务的日志中出现了大量的异常: [WARN ] 2018-06-15 16:55:20,831 --New I/O server boss #1 ([id: 0x55007b59, /0.0.0.0:20880])-- [org.jboss.netty.channel.socket.nio.
阅读全文
TCP端口状态说明ESTABLISHED、TIME_WAIT
摘要:TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中
阅读全文
HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接
摘要:三种状态: ESTABLISHED 表示正在进行网络连接的数量TIME_WAIT 表示表示等待系统主动关闭网络连接的数量CLOSE_WAIT 表示被动等待程序关闭的网络连接数量 上篇文章给出了解决TIME_WAIT太多的方法,本篇文章以HttpClient为例说明解决大量CLOSE_WAIT状态的方
阅读全文
Http长连接和Keep-Alive以及Tcp的Keepalive
摘要:Keep-Alive模式:我们知道Http协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时,每个请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接;当使用Keep-Alive模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继
阅读全文
linux socket中tcp的time_wait的快速回收和重用
摘要:最近项目中发现用screen启动socket老出错,在调试脚本中看出是screen 启动后,但是并没有将socket拉起;起初一直在查是不是由于screen启动机制导致的,后来和同事沟通发现是由于服务器端socket有大量的客户端连接时,当服务器主动kill掉socket的tcp端口时,再次立即重启
阅读全文