Linux

  • Linux TCP/IP 协议栈调优
    文章 更新时间:

    Linux TCP/IP 协议栈调优 原文地址 [colobu.com](https://colobu.com/2014/09/18/linuxtcpiptuning/) 最近忙于系统性能的 DEBUG 和调优。 net.core.netdevmaxbacklog = 400000 该参数决定了,网络设备接收数据包的速

  • 服务器tcp连接timewait过多优化及详细分析
    文章 更新时间:

    服务器tcp连接timewait过多优化及详细分析 [ ](https://cf.maocaoying.com/images/2023/03/31/8720bd64871a5452df583fdab8207d64.jfif) [ ](https://cf.maocaoying.com/images/2023/03/31

  • byte为什么要与上0xff?
    文章 更新时间:

    byte为什么要与上0xff? <http://www.cnblogs.com/thinkinjava/p/5527389.html 无意间翻看之间的代码,发现了一段难以理解的代码。 byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetNam

  • int最大值, mysql与计算机内
    文章 更新时间:

    int最大值, mysql与计算机内 int 是4个字节,1个字节等于8个比特,共有48个比特,每个比特位不是1就是0,那么就有2种选择, 而在二进制里,我们把第一个比特位用来表示正负,0为正数,1为负数。我们把32个比特位都用上,再减去用来表示正负第一个比特位,有31个比特位可以用,也就是有231个组合方式,那么大家

  • 机器码、字节码、汇编语言的区别
    文章 更新时间:

    机器码、字节码、汇编语言的区别 机器码 机器码(machine code),机器语言指令,一种CPU的可读指令,是CPU可直接解读的0 1二进制序列。不同的CPU生产厂商,遵守的机器指令标准主体上是通用的,但也会有自己的一些比较特殊的指令。 字节码 字节码(Bytecode),是一种包含执行程序、由一序列 op(操作码

  • erc-20和erc-721 ERC-3525 ERC-1155的区别
    文章 更新时间:

    erc20和erc721 ERC3525 ERC1155的区别 首先,我们简单介绍一下ERC20和ERC721。 1、 ERC20 Erc20是最著名的标准。ERC20标准无差异。代币可以互换。这相当于说,按照ERC20标准,你的100元“钱”和我的一样。 Erc20标准规定,代币应具有名称、符号、总供给量和转账、汇款

  • -127 原码 反码 补码
    文章 更新时间:

    127 原码 反码 补码 char类型127的有符号右移1位操作 127的原码: 1111 1111 127的反码: 1000 0000 127的补码: 1000 0001 127转换成整形高位用1填: 1111 1111 1111 1111 1111 1111 1000 0001 127右移1位, 高位用1填补: 1

  • cpu MESI 缓存行一致性协议
    文章 更新时间:

    cpu MESI 缓存行一致性协议 多核CPU的缓存一致性协议MESI 多核CPU下有多个多级缓存,如何保证缓存中内部数据的一致性,不让数据混乱。这里就引入一个一致性协议MESI MESI是指4种状态的首字母。每个Cache line(缓存行:缓存存储数据的单元)有4个状态,可用2bit表示,如下: [ ](https

  • 分布式事务——2PC、3PC 和 TCC
    文章 更新时间:

    分布式事务——2PC、3PC 和 TCC https://huzb.me/2019/06/30/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E2%80%94%E2%80%942PC%E3%80%813PC%E5%92%8CTCC/ 对于单机下的本地事务,很显然我们有已被实

  • 事件驱动架构要避开的 5 个陷阱
    文章 更新时间:

    事件驱动架构要避开的 5 个陷阱 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [www.infoq.cn](https://www.infoq.cn/article/7Wbo3Ivcv5rvosyL10TO) 事件驱动架构要避开的 5 个陷阱事件驱动架构

  • 你不好奇 CPU 是如何执行任务的吗
    文章 更新时间:

    你不好奇 CPU 是如何执行任务的吗 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [xie.infoq.cn](https://xie.infoq.cn/article/ba468e37058f85d41d0b049a2) 前言你清楚下面这几个问题吗?有

  • 深入解析actor 模型(一): actor 介绍及在游戏行业应用
    文章 更新时间:

    深入解析actor 模型(一): actor 介绍及在游戏行业应用 原文地址 [zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/427806717) 1 介绍 1.1 什么是 actor 对于刚接触 actor 的我,第一感觉就像 redis 一样,每个 actor 就

  • 被抛弃的 tcp_recycle
    文章 更新时间:

    被抛弃的 tcprecycle 原文地址 [juejin.cn](https://juejin.cn/post/6844903730874171405) 本文从一次巧合发现高版本 Linux 不再支持 tcptwrecycle,深入研究了连接状态 TIMEWAIT 的原理,进而分析了 tcptw 族内核参数和如何应用它

  • 回顾: 熟悉 HTTP,TCP/IP
    文章 更新时间:

    回顾: 熟悉 HTTP,TCP/IP 原文地址 [www.zhihu.com](https://www.zhihu.com/question/21729252/answer/2429986899) TCP 的定义 TCP 全称为 Transmission Control Protocol([传输控制协议](https:

  • 操作系统 集锦
    文章 更新时间:

    操作系统 集锦 操作系统基础 栈 Stack 以及 C 函数的调用过程 操作系统基础 内存管理(二) 虚拟地址是如何生成的 操作系统基础 内存管理(一) 虚拟内存 → 物理内存 操作系统基础 01 起源(一) 图灵机 [原文](https://www.shangyang.me/categories/%E8%AE%A1%

  • 微服务 名词解释
    文章 更新时间:

    微服务 名词解释 看gozero框架时候偶然看到的 概述 概述[​](概述 "Direct link to heading") 在开发中,我们经常提到一些名词 “单体”、“微服务”、“API”、“gRPC”、“gRPC stub”,”Protobuf“、“rest”、“负载均衡”,“服务发现” 等名词,这些名词后后续文

  • KCP协议:从TCP到UDP家族QUIC/KCP/ENET
    文章 更新时间:

    KCP协议:从TCP到UDP家族QUIC/KCP/ENET TCP/UDP/KCP TCP TCP协议的可靠性让使用TCP开发更为简单,同时它的这种设计也导致了慢的特点。 TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利用带宽。 TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的

  • OSI 模型(未完待续)
    文章 更新时间:

    OSI 模型(未完待续) 补充:传输层的数据叫作段(segment),网络层的数据叫作包(packet),数据链路层的数据叫作帧(frame),物理层的数据叫作流(stream)。 [ ](https://cf.maocaoying.com/images/2023/06/13/19c89112cdee387c4994b

  • MQTT协议简介
    文章 更新时间:

    MQTT协议简介 MQTT和Websocket的区别是什么? 苍何的回答 知乎 https://www.zhihu.com/question/21816631/answer/2725809202 发布订阅模式是传统 Client/Server 模式的一种解耦方案。发布者通过 Broker 与消费者之间通信,Broker

  • Proactor vs Reactor
    文章 更新时间:

    Proactor vs Reactor 前面提到的 Reactor 是非阻塞同步网络模式,而 Proactor 是异步网络模式。 先来看看阻塞 I/O,当用户程序执行 read ,线程会被阻塞,一直等到内核数据准备好,并把数据从内核缓冲区拷贝到应用程序的缓冲区中,当拷贝过程完成,read 才会返回。注意,阻塞等待的是「

  • 火焰图perf
    文章 更新时间:

    火焰图perf yum y install perf 采样 perf record F 99 p <pid g sleep 30 pid表示需要采样的进程id,如果是Java进程可以使用jps等命令获取进程id,perf record表示记录,F 99表示每秒99次,g表示记录调用栈,sleep 30则是持续30秒 s

  • Page Cache
    文章 更新时间:

    Page Cache [ ](https://cf.maocaoying.com/images/2023/12/17/212742d2336eb2ae285596397499db29.png) linux 内核2.4开始 Cache与Buffer是我们容易混淆的内存概念,Cache名为缓存,Buffer名为缓冲,虽一字

  • 存储器访问速度 cpu-内存-硬盘(备用)
    文章 更新时间:

    存储器访问速度 cpu内存硬盘(备用) [ ](https://cf.maocaoying.com/images/2023/12/21/7973ee3b8f6654ad49820827a2551300.jfif) [ ](https://cf.maocaoying.com/images/2023/12/21/a2023

  • NFS
    文章 更新时间:

    NFS [ ](https://cf.maocaoying.com/images/2024/01/02/b083123da187c2d5ae9075495225c480.png) NFS 与 NAS 是什么关系? 数据存储张的回答 知乎 https://www.zhihu.com/question/19786074/a

  • 【网易云信】深度剖析「圈组」消息系统设计
    文章 更新时间:

    【网易云信】深度剖析「圈组」消息系统设计 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [xie.infoq.cn](https://xie.infoq.cn/article/0f4b3aa13302ee086b2c1c94e) 导读:网易云信新晋的 IM

  • http1时代
    文章 更新时间:

    http1时代 http1时代 为何一些站点会有多个静态资源 CDN 域名的原因之一,拿 Twitter 为例, http://twimg.com ,目的就是变相的解决浏览器针对同一域名的请求限制阻塞问题。

  • shell 变量大括号
    文章 更新时间:

    shell 变量大括号 在shell脚本编程中,我们给变量加上大括号,作用是为了帮助解释器识别变量边界 对于变量有空格隔开独立的情形,$val与 ${val}等价; 对于变量之间无空格隔开,想要组合两个变量或变量与字符串时,{}就起到限定边界作用 echo "I am good at ${skill}Code"

  • linux screen命令
    文章 更新时间:

    linux screen命令 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这

  • linux bash -c | sh -c
    文章 更新时间:

    linux bash c | sh c https://zhuanlan.zhihu.com/p/431138872 c string If the c option is present, then commands are read from string. If there are arguments after

  • 【知识拓展】音视频中的推流与拉流
    文章 更新时间:

    【知识拓展】音视频中的推流与拉流 https://blog.csdn.net/weixin44299027/article/details/105053426 推流 推流,指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,

  • 对于Serverless的定义,文章给出来一个公式:Serverless = FAAS+ BAAS。将FAAS(Functions as a Service)定
    文章 更新时间:

    对于Serverless的定义,文章给出来一个公式:Serverless = FAAS+ BAAS。将FAAS(Functions as a Service)定 对于Serverless的定义,文章给出来一个公式:Serverless = FAAS+ BAAS。将FAAS(Functions as a Service)

  • linux NF $NF 区别-awk命令中
    文章 更新时间:

    linux NF $NF 区别awk命令中 NF 表示的是浏览记录的域的个数 $NF 表示的最后一个Field(列),即输出最后一个字段的内容 [root@localhost SHELL] free m | grep buffers\/ /+ buffers/cache: 1815 1859 [root@localho

  • 启动一个tcp 服务 nc命令
    文章 更新时间:

    启动一个tcp 服务 nc命令 nc l 9002 port: 9002 原文地址 [mjd507.github.io](https://mjd507.github.io/2018/01/15/UsenetcattotransferTCPUDPData/) netcat,简写为 nc,是 unix 系统下一个强大的命令

  • Prometheus指标
    文章 更新时间:

    Prometheus指标 场景结构图: [ ](https://cf.maocaoying.com/images/2023/11/23/1dc0125fcf076bdd6968680875dc2983.png) Prometheus定义了4种不同的指标类型(metric type): Counter(计数器)、Gaug

  • etcd 分布式 - 看图轻松了解 etcd
    文章 更新时间:

    etcd 分布式 看图轻松了解 etcd 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [segmentfault.com](https://segmentfault.com/a/1190000020742981) 用一些图示结合场景和文字轻松了解 etc

  • 算力 GPU CPU
    文章 更新时间:

    算力 GPU CPU 算力及其经济效应 所谓算力,就是设备处理数据、输出结果的能力,或者简而言之,就是计算的能力。它的基本单位是用“每秒完成的标准操作数量”(standardized operations per second,简称SOPS)来进行衡量。不过,由于现在的设备性能都非常高,因而在实践中用SOPS来衡量算力

  • redis 过期key event订阅
    文章 更新时间:

    redis 过期key event订阅 https://redis.io/docs/manual/keyspacenotifications/timingofexpiredevents 就是非实时,可能晚很多。不建议用。只有background thread 扫到它,Delete时才会触发 Timing of expi

  • ETCD 一文入门
    文章 更新时间:

    ETCD 一文入门 KV 服务,创建,更新,获取和删除键值对。 监视,监视键的更改。 租约,消耗客户端保持活动消息的基元。 锁,etcd 提供分布式共享锁的支持。 选举,暴露客户端选举机制。 https://doczhcn.gitbook.io/etcd/index https://juejin.cn/post/684

  • 搜索 开源 简介
    文章 更新时间:

    搜索 开源 简介 Bleve & Tantivy Bleve和Tantivy是搜索引擎项目,分别用Golang和Rust编写,灵感来自Apache Lucene及其算法(例如,tfidf,术语频率反向文档频率的缩写)。与Lucene一样,两者都是可用于任何搜索项目的库;但它们没有现成的API,无法做到开箱即用。 tan

  • telnet ssh VNC
    文章 更新时间:

    telnet ssh VNC telnet Telnet是进行远程登录的标准协议,它是当今Internet上应用最广泛的协议之一。它把用户正在使用的终端或计算机变成网络某一远程主机的仿真终端,使得用户可以方便地使用远程主机上的软、硬件资源。 ssh Telnet协议在带来便利性的同时,也带来了许多安全问题,最突出的就是

  • 基于Redis的Stream类型的完美消息队列解决方案
    文章 更新时间:

    基于Redis的Stream类型的完美消息队列解决方案 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/60501638) ⚠️ 回答于 3 年前 1 概述

  • IM 服务器设计 - 消息存储 - codedump 的网络日志
    文章 更新时间:

    IM 服务器设计 消息存储 codedump 的网络日志 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [www.codedump.info](https://www.codedump.info/post/20190608immsgstorage/) 采用

  • 现代IM系统中的消息系统架构——架构篇
    文章 更新时间:

    现代IM系统中的消息系统架构——架构篇 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [www.infoq.cn](https://www.infoq.cn/article/yPB3Y2lvDsFtRr5Cguv) 现代 IM 系统中的消息系统架构——架构

  • 详解 Server Sent Events
    文章 更新时间:

    详解 Server Sent Events 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/515921898) Server Sent Events 的使用

  • http/2 SPDY/2
    文章 更新时间:

    http/2 SPDY/2 特点 首先来说最初的HTTP/1.0的时候,一次TCP的链接上只能发送一个HTTP请求,导致HTTP传输的效率特别低。 好在HTTP/1.1的时候,引入了持久链接和管道机制,使得HTTP的传输效率得到了很大的提升(详细和可查看HTTP基本认识)。持久链接满足了一条TCP链接可以发送多条HTT

  • Linux 防火墙之 ipset 表应用
    文章 更新时间:

    Linux 防火墙之 ipset 表应用 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [www.sfjvip.com](https://www.sfjvip.com/server/4422.html) 简介提示线上生产环境不要随便重启 iptables,

  • 信令服务器
    文章 更新时间:

    信令服务器 都有房间概念 socket.io node gosocket.io https://github.com/googollee/gosocket.io

  • Socket.IO
    文章 更新时间:

    Socket.IO Socket.IO 是一个封装了 Websocket、基于 Node 的 JavaScript 框架,包含 client 的 JavaScript 和 server 的 Node。其屏蔽了所有底层细节,让顶层调用非常简单。 另外,Socket.IO 还有一个非常重要的好处。其不仅支持 WebSock

  • GitOps 介绍 – 云原生实验室
    文章 更新时间:

    GitOps 介绍 – 云原生实验室 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [icloudnative.io](https://icloudnative.io/posts/whatisgitops/) 本文介绍了什么是 GitOps,包括 GitO

  • 服务器观测指标 TP90 P90
    文章 更新时间:

    服务器观测指标 TP90 P90 最常用的主要有P50(中位数)、P95、P99。 平均值一般不具有参考价值 TP=Top Percentile,Top百分位数,是一个统计学里的术语,与平均数、中位数都是一类。 P50: 即中位数值。100个请求按照响应时间从小到大排列,位置为50的值,即为P50值。如果响应时间的P5

  • linux 查看网络流量
    文章 更新时间:

    linux 查看网络流量 dstat nf ★ dstat 是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat的全能系统信息统计工具,支持数据实时刷新,输出直观易懂。 [ ](https://cf.maocaoying.com/images/2023/03/09/2782f12b22

  • iptables 配置,docker容器指定不同网卡
    文章 更新时间:

    iptables 配置,docker容器指定不同网卡 今天遇到个需求。 docker 不同容器 配不同网卡。对外公网ip不同 先备份 把iptables规则备份到my.ipt文件中 iptablessave my.ipt 恢复刚才备份的规则 iptablesrestore < my.ipt 查看 列出 iptables

  • docker network 配置网卡
    文章 更新时间:

    docker network 配置网卡 我们使用docker run创建容器时,可以使用net选项指定容器的网络模式,docker一共有4中网络模式: 1:bridge模式,net=bridge(默认)。 这是dokcer网络的默认设置。安装完docker,系统会自动添加一个供docker使用的网桥docker0,我们

  • iptables 命令 规则 参数详解
    文章 更新时间:

    iptables 命令 规则 参数详解 表 (table) [原文](https://www.cnblogs.com/zclzhao/p/5081590.html) 包含4个表: 4个表的优先级由高到低:rawmanglenatfilter rawRAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高

  • Git 内部原理图解——对象、分支以及如何从零开始建仓库
    文章 更新时间:

    Git 内部原理图解——对象、分支以及如何从零开始建仓库 https://www.freecodecamp.org/chinese/news/gitinternalsobjectsbranchescreaterepo/ 我们中的许多人每天都在使用 git,但是有多少人知道它的内部是怎么运作的呢? 例如我们使用 git

  • 看完秒懂什么是 SNI
    文章 更新时间:

    看完秒懂什么是 SNI 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/547260827) SNI(Server Name Indication):是 TL

  • 浅析开源项目之io_uring
    文章 更新时间:

    浅析开源项目之iouring Linux内核5.1支持了新的异步IO框架iouring,由Block IO大神也即Fio作者Jens Axboe开发,意在提供一套公用的网络和磁盘异步IO,不过iouring目前在磁盘方面要比网络方面更加成熟。 目录 背景简介 iouring 系统API liburing 高级特性 编程