
linux
文章平均质量分 63
杨步涛的博客
老杨,目前居住上海 微信:yangbt_6225080 qq:306591368 擅长云计算、分布式系统设计、docker容器化技术、海量数据的存储、搜索、数据挖掘。
展开
-
IO模型介绍以及同步异步阻塞非阻塞的区别
先说一下几个单词。阻塞:用户进程访问数据时,如果未完成IO,等待IO操作完成或者进行系统调用来判断IO是否完成非阻塞:用户进程访问数据时,会马上返回一个状态值,无论是否完成同步:用户进程发起IO(就绪判断)后,轮询内核状态异步:用户进程发起IO后,可以做其他事情,等待内核通知 介绍一下IO模型 网络IO模型和文件IO模型是一样的,上图是IO的5种模型,包括阻塞IO、原创 2012-12-30 16:44:17 · 1835 阅读 · 0 评论 -
回顾一下TCP/IP连建立断开,以及常见大量的TIME_WAIT和CLOSE_WAIT状态原因
连接建立和断开过程: CLOSED: 表示初始状态。LISTEN: 这个也是非常容易理解的一个状态,表示服务器端的某个SOCKET处于监听状态,可以接受连接了。SYN_RCVD: 这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你原创 2013-04-13 09:16:10 · 4033 阅读 · 1 评论 -
分析系统的性能问题的维度
如何分析系统的性能问题:从以下几个维度进行考虑 当并发压力加大时,往往是吞吐量上不去,肯定是某一个方面出现了瓶颈,(比如CPU,内存(大量的swap),磁盘IO,网络IO,操作系统,应用) 如果CPU比较高(user,sys,wa),user高,可以把系统的线程dump出来,观察系统正在做的逻辑,优化逻辑;sys高,则说明kernel耗费了大量的CPU时间,比如当前的线程的切换比较厉原创 2012-12-17 16:38:19 · 2421 阅读 · 0 评论 -
linux IO层以及相关的IO系统调用回顾
Linux下,I/O处理的层次可分为4层:1、系统调用层,应用程序使用系统调用指定读写哪个文件,文件偏移是多少等等2、文件系统层,写文件时将用户态中的buffer拷贝到内核态下,并由cache缓存该部分数据 文件系统最上方时VFS,它是应用层和具体文件系统之间的接口,屏蔽不同文件系统的差异,以一种统一的方式给上层调用。3、块层,管理块设备I/O队列,对I/O请原创 2013-04-13 15:11:04 · 3425 阅读 · 0 评论 -
关于NUMA架构的使用
当前大多数的PC机都是NUMA架构的,numa架构可以参考http://www.fmslib.com/fmsman/doc/numa.htmlNUMA的架构的内存分配有以下四种:1、default,总是分配在进程运行的节点上的内存,这是默认值2、bind,强制把进程绑定到指定的CPU节点,进行内存分配3、interleave,在所有节点上交织分配4、preferred,在指原创 2013-04-13 08:10:39 · 2093 阅读 · 0 评论 -
经常遇到的java.lang.OutOfMemoryError: unable to create new native thread解决方法
简单分享一下,类似问题的解决方法刚才在某机器上上xxx用户下压测时遇到这个问题,连xxx都进不去了说明xxx用户下无法创建跟多的线程了(当然root用户没这个问题) 系统能够创建的最大线程数:(MaxProcessMemory - JVMMemory –系统内存) / (ThreadStackSize) = Number of threads有两种方式:原创 2012-12-20 11:08:42 · 13936 阅读 · 0 评论