linux IO笔记


linux内核 io基础
lsof -p 文件描述符
netstat -natp -tunlp
tcpdump -nn -i eth0 port 9090

三次握手 客户端发起sync(seq) 服务端返回sync ack(=seq+1) 客户端返回sync ack(=1)
socket四元组在内存资源足够的时候只要唯一就能创建连接成功
CIP_CPORT+SIP_SPORT : FD1 
mtu  max transmit unit/mss max segment size
https://blog.csdn.net/itworld123/article/details/102994694
nc命令
nc ip port
发送很多以后超出s-rec队列的数据会被丢弃
阻塞的问题如何解决
nodelay 默认false delay优化的结果实际上会先发
oob 参数 会先发一个字符 ok才会将剩余的发送出去delay优化模式下会一口气将剩下的都发出去
keepalive在tcp层会时不时发送ack给对方看是否存活,避免三次握手之后分配了资源却不说话
lsof -p $$  (lsof : list open file)
追踪进程的线程情况
strace -ff -o out /usr/j2sdk1.4/bin/java TestSocket

man tcp
man bash
man utf-8/ascii/7 ip/ip
man man
man 2 socket
socket=fd3 bind(fd3,9=8090) listen(fd3) -> netstat -natp 0.0.0.0:8090 0.0.0.0.* LISTEN
accept(fd3,  >>fd5/blocking
clone recv(
bio的方式就是多线程模型
有一个线程专门接受accept fd3 (accept(fd3,  >>fd5/blocking)
来一个新的客户端就开启一个线程(clone recv(fd5(fd6、fd7来一个就会增加一个文件描述符)->/blocking)
测试服务器客户端创建超过65535个请求出去的方法:在原网卡子端口下设置一个ip
能保证四元组不同就可以了
ifconfig eth0:11 192.168.160.11/24
kegel.com/c10k.html

route -n
route add -host 192.168.110.100 gw 192.168.1.2(直接发给windows这台机器)
因为如果按默认的发到

ulimit -a
ulimit -SHn 500000
ulimit -n
1024对非root用户生效,root用户有特权,限制对root来说虚设

cat /proc/sys/fs/file-max
385900 38万 kernal级别估算4g内存可以生成最多有38万左右的描述符

/etc/security/limits.conf
yum install man-pages man 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值