Quantcast
Channel: BlogJava-聂永的博客
Browsing all 30 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

Fastsocket学习笔记之动态链接库篇

前言 本篇为fastsocket的动态链接库学习笔记,对应源码目录为 fastsocket/library,先翻译README.md文件内容,后面添加上个人学习心得。 介绍 动态链接库libfsocket.so,为已有应用程序提供加速服务,具有可维护性和兼容性。...

View Article


Image may be NSFW.
Clik here to view.

Fastsocket学习笔记之模块篇

前言 本篇学习Fastsocket内核模块fastsocket.so,作为用户态libfsocket.so的内核态的支持,处理ioctl传递到/dev/fastsocket的数据,非常核心和基础。嗯,还是先翻译,随后挟带些点评进来。 模块介绍 Fastsocket内核模块 (fastsocket.ko) 提供若干特性,并各自具有开启和关闭等丰富选项可配置。 VFS 优化 CentOS...

View Article


Image may be NSFW.
Clik here to view.

Fastsocket学习笔记之内核篇

前言 前面分析Fastsocket慢慢凑成了几篇烂文字,要把一件事情坚持做下来,有时味同爵蜡,但既然选择了,也得硬着头皮做下去。闲话少说,文归正文。本文接自上篇内核模块篇,继续记录学习Fastsocket内核的笔记内容。 Fastsocket建立在SO_REUSEPORT支持基础上 Linux kernel...

View Article

Image may be NSFW.
Clik here to view.

Fastsocket学习笔记之小结篇

前言 前面啰啰嗦嗦的几篇文字,各个方面介绍了Fastsocket,盲人摸象一般,能力有限,还得继续深入学习不是。这不,到了该小结收尾的时候了。 缘起,内核已经成为瓶颈...

View Article

Image may be NSFW.
Clik here to view.

SO_REUSEPORT学习笔记

前言 本篇用于记录学习SO_REUSEPORT的笔记和心得,末尾还会提供一个bindp小工具也能为已有的程序享受这个新的特性。 当前Linux网络应用程序问题 运行在Linux系统上网络应用程序,为了利用多核的优势,一般使用以下比较典型的多进程/多线程服务器模型: 单线程listen/accept,多个工作线程接收任务分发,虽CPU的工作负载不再是问题,但会存在:...

View Article


Image may be NSFW.
Clik here to view.

SO_REUSEPORT学习笔记补遗

前言 因为能力有限,还是有很多东西(SO_REUSEADDR和SO_REUSEPORT的区别等)没有能够在一篇文字中表达清楚,作为补遗,也方便以后自己回过头来复习。 SO_REUSADDR VS SO_REUSEPORT 两者不是一码事,没有可比性。有时也会被其搞晕,自己总结的不好,推荐StackOverflow的Socket options SO_REUSEADDR and...

View Article

Image may be NSFW.
Clik here to view.

HTTP/2笔记之开篇

前言 本系列基于HTTP/2第17个草案文档,地址就是:https://tools.ietf.org/html/draft-ietf-httpbis-http2-17。 HTTP/2规范已经通过发布批准,下面等待分配具体的RFC号码,不会有所较大的变动了。 本笔记不是直接翻译,记录成笔记方便以后学习。 HTTP/1.1的问题 一张图可以很较为全面的概括了HTTP/1.*存在缺陷: 前端一般采用:...

View Article

Image may be NSFW.
Clik here to view.

HTTP/2笔记之连接建立

前言 HTTP/2协议在TCP连接之初进行协商通信,只有协商成功,才会涉及到后续的请求-响应等具体的业务型数据交换。 HTTP版本标识符 h2,基于TLS之上构建的HTTP/2,作为ALPN的标识符,两个字节表示,0x68, 0x32,即https h2c,直接在TCP之上构建的HTTP/2,缺乏安全保证,即http 在HTTP/2...

View Article


Image may be NSFW.
Clik here to view.

HTTP/2笔记之流和多路复用

零。前言 本部分将讲解HTTP/2协议中对流的定义和使用,其实就是在说HTTP/2是若何做到多路复用的。 一。流和多路复用的关系 1. 流的概念 流(Stream),服务器和客户端在HTTP/2连接内用于交换帧数据的独立双向序列,逻辑上可看做一个较为完整的交互处理单元,即表达一次完整的资源请求-响应数据交换流程;一个业务处理单元,在一个流内进行处理完毕,这个流生命周期完结。 特点如下:...

View Article


Image may be NSFW.
Clik here to view.

HTTP/2笔记之帧

零。前言 客户端和服务器端一旦握手协商成功接建立连接,端点之间可以基于HTTP/2协议传递交换帧数据了。 一。帧通用格式 下图为HTTP/2帧通用格式:帧头+负载的比特位通用结构:+-----------------------------------------------+ | Length (24) |...

View Article

Image may be NSFW.
Clik here to view.

HTTP/2笔记之消息交换

前言 无论是HTTP/1.*还是HTTP/2,HTTP的基本语义是不变的,比如方法语义(GET/PUST/PUT/DELETE),状态码(200/404/500等),Range Request,Cacheing,Authentication、URL路径。以前纯文本形式作为传输的载体,HTTP/2带来了与之不同的二进制传输语法语义。 下面为HTTP/2消息交换方便笔记。 请求/响应流程...

View Article

Image may be NSFW.
Clik here to view.

HTTP/2笔记之错误处理和安全

零。前言 这里整理了一下错误和安全相关部分简单记录。 一。HTTP/2错误 1. 错误定义 HTTP/2定义了两种类型错误: 导致整个连接不可使用的错误为连接错误(connection error) 单独出现在单个连接上的错误为流错误(stream error) 2. 错误代码 错误代码,32位正整数表示错误原因,RST_STREAM和GOAWAY帧中包含。...

View Article

Image may be NSFW.
Clik here to view.

移动APP后端网络处理一些问题记录

零。前言 这里讲的移动APP主要指的是安卓平台,大部分情况也适用于IOS等移动平台,可能重点嘛会在后半部分呢。 一。嵌入多SDK存在的隐患 但凡一个常用的APP都会嵌入至少一个SDK,不同来源或同一来源,有广告SDK,有推送SDK,有性能汇报SDK,有用户跟踪SDK,有统计流量SDK等,有支付SDK等等。虽然带来了功能的复用和解耦,便于纵向扩展,但可能会存在:...

View Article


Image may be NSFW.
Clik here to view.

随手记之TCP Keepalive笔记

零。前言 TCP是无感知的虚拟连接,中间断开两端不会立刻得到通知。一般在使用长连接的环境下,需要心跳保活机制可以勉强感知其存活。业务层面有心跳机制,TCP协议也提供了心跳保活机制。 一。TCP Keepalive解读...

View Article

Image may be NSFW.
Clik here to view.

TCP协议缺陷不完全记录

零。前言 TCP自从1974年被发明出来之后,历经30多年发展,目前成为最重要的互联网基础协议。有线网络环境下,TCP表现的如虎添翼,但在移动互联网和物联网环境下,稍微表现得略有不足。 移动互联网突出特性不稳定:信号不稳定,网络连接不稳定。虽然目前发展到4G,手机网络带宽有所增强,但因其流动特性,信号也不是那么稳定:坐长途公交车,或搭乘城铁时,或周边上网密集时等环境,现实环境很复杂。...

View Article


Image may be NSFW.
Clik here to view.

Tsung笔记之开篇

前言 有测试驱动的开发模式,目的在于确保业务层面功能是准确的,每一次新增、修改等动作确保都不会影响到现有功能。功能开发完成了,需要部署到线上,系统能够承载多大的用户量呢,这时候就需要借助于性能压测,也称之为压力测试,界定系统能够承载具体容量上限,从容应对业务的运营需要,扩容或缩容,心中有底。...

View Article

Image may be NSFW.
Clik here to view.

Tsung笔记之主从模型篇

前言 本篇讲解Tsung大致功能组成、结构,以及主从模型,以便总体上掌握。 总体组成  tsung_controller 和 tsung 这两个模块,负责分布式压测的核心功能。 代码组成 从代码层次梳理一下tsung项目功能组成结构,便于一目了然,方便直接索引。  主从模型一览 设定环境为分布式环境下Tsung集群,下面简单梳理一下主、从节点启动流程。  流程大致说明:...

View Article


Image may be NSFW.
Clik here to view.

Tsung笔记之主从资源协调篇

前言 接着上文,tsung一旦启动,主从节点之间需要协调分配资源,完成分布式压测任务。 如何启动Tsung压测从机 Erlang SDK提供了从机启动方式: slave:start(Host, Node, Opts) 启动从机需要借助于免登陆形式远程终端,比如SSH(后续会讨论SSH存在不足,以及全新的替代品),需要自行配置。 <client host="client_100"...

View Article

Image may be NSFW.
Clik here to view.

Tsung笔记之压测端资源限制篇

前言 这里汇集一下影响tsung client创建用户数的各项因素。因为Tsung是IO密集型的应用,CPU占用一般不大,为了尽可能的生成更多的用户,需要考虑内存相关事宜。 IP & 端口的影响 1. 系统端口限制 Linux系统端口为short类型表示,数值上限为65535。假设分配压测业务可用端口范围为1024 -...

View Article

Image may be NSFW.
Clik here to view.

Tsung笔记之分布式增强跳出SSH羁绊篇

前言 Erlang天生支持分布式环境,Tsung框架的分布式压测受益于此,简单轻松操控子节点生死存亡、派发任务等不费吹灰之力。...

View Article
Browsing all 30 articles
Browse latest View live