
Linux 书籍
enlyhua
这个作者很懒,什么都没留下…
展开
-
14.性能之巅 洞悉系统、企业与云计算 --- 附录
附录:原创 2021-03-17 16:03:49 · 136 阅读 · 0 评论 -
13.性能之巅 洞悉系统、企业与云计算 --- 案例研究
13.1 案例研究:红鲸 13.1.1 问题陈述 13.1.2 支持 13.1.3 上手 13.1.4 选择征途 13.1.5 USE 方法 13.1.6 我们做完了吗 13.1.7 二度出击 13.1.8 基础 13.1.9 忽略红鲸 13.1.10 审问内核 13.1.11 为什么 13.1.12 尾声 ...原创 2021-03-17 15:53:29 · 119 阅读 · 0 评论 -
12.性能之巅 洞悉系统、企业与云计算 --- 基准测试
12.1 背景 12.1.1 事情 12.1.2 有效的基准测试 12.1.3 基准测试之罪12.2 基准测试的类型 12.2.1 微基准测试 12.2.2 模拟 12.2.3 回放 12.2.4 行业标准12.3 方法 12.3.1 被动基准测试 12.3.2 主动基准测试 12.3.3 CPU 剖析 12.3.4 USE 方法 12.3.5 工作负载特征归纳 12.3.6 自定义基准测试 12.3.7 逐渐增加负载 12.3.8 完整性检查 12.3..原创 2021-03-17 15:41:08 · 138 阅读 · 0 评论 -
11.性能之巅 洞悉系统、企业与云计算 --- 云计算
11.1 背景 11.1.1 性价比 11.1.2 可扩展的架构 11.1.3 容量规划 11.1.4 存储 11.1.5 多租户 11.2 OS 虚拟化 11.2.1 系统开销 11.2.2 资源控制 11.2.3 可观测性11.3 硬件虚拟化 11.3.1 系统开销 11.3.2 资源控制 11.3.3 可观测性11.4 比较.原创 2021-03-17 15:22:42 · 857 阅读 · 0 评论 -
10.性能之巅 洞悉系统、企业与云计算 --- 网络
10.1 术语10.2 模型 10.2.1 网络接口 10.2.2 控制器 10.2.3 协议栈 10.3 概念 10.3.1 网络和路由 10.3.2 协议 10.3.3 封装 10.3.4 包长度 10.3.5 延时 10.3.6 缓冲 10.3.7 连接积压队列 10.3.8 接口协商 10.3.9 使用率 10.3.10 本地连接 10.4 架构 10.4.1 协议 10.4.2 硬件 10.4.3 软件10.5 方法 10.5.1 工具法.原创 2021-03-17 14:25:21 · 11948 阅读 · 0 评论 -
9.性能之巅 洞悉系统、企业与云计算 --- 磁盘
9.1 术语 9.2 模型 9.2.1 简单磁盘 9.2.2 缓存磁盘 9.2.3 控制器9.3 概念 9.3.1 测量时间 9.3.2 时间尺度 9.3.3 缓存 9.3.4 随机 vs 连续I/O 9.3.5 读/写比 9.3.6 I/O 大小 9.3.7 IOPS 并不平等 9.3.8 非数据传输磁盘命令 9.3.9 使用率 9.3.10 饱和度 9.3.11 I/O 等待 9.3.12 同步 vs 异步 9.3.13 磁盘 vs 应用程序.原创 2021-03-12 13:51:58 · 245 阅读 · 1 评论 -
8.性能之巅 洞悉系统、企业与云计算 --- 文件系统
8.1 术语 8.2 模型 8.2.1 文件系统接口 8.2.2 文件系统缓存 8.2.3 二级缓存 8.3 概念 8.3.1 文件系统延时 8.3.2 缓存 8.3.3 随机与顺序I/O 8.3.4 预取 8.3.5 预读 8.3.6 写回缓存 8.3.7 同步写 8.3.8 裸I/O 和直接I/O 8.3.9 非阻塞I/O 8.3.10 内存映射文件 8.3.11 元数据 8.3.12 逻辑I/O vs.物理I/O 8.3.13 操作并非.原创 2021-03-12 12:13:04 · 173 阅读 · 0 评论 -
7.性能之巅 洞悉系统、企业与云计算 --- 内存
7.1 术语7.2 概念 7.2.1 虚拟内存 7.2.2 换页 7.2.3 按需换页 7.2.4 过度提交 7.2.5 交换 7.2.6 文件系统缓存占用 7.2.7 使用率和饱和度 7.2.8 分配器 7.2.9 字长7.3 架构 7.3.1 硬件 7.3.2 软件 7.3.3 进程地址空间7.4 方法 7.4.1 工具法 7.4.2 USE 方法 7.4.3 使用特征归纳 7.4.4 周期分析 7.4.5 性能监测 7.4.6 泄漏检测 7.4.原创 2021-03-05 18:55:25 · 417 阅读 · 1 评论 -
6.性能之巅 洞悉系统、企业与云计算 --- CPU
6.1 术语 6.2 模型 6.2.1 CPU 架构 6.2.2 CPU 内存缓存 6.2.3 CPU 运行队列 6.3 概念 6.3.1 时钟频率 6.3.2 指令 6.3.3 指令流水线 6.3.4 指令宽度 6.3.5 CPI,IPC 6.3.6 使用率 6.3.7 用户时间/内核时间 6.3.8 饱和度 6.3.9 抢占 6.3.10 优先级反转 6.3.11 多进程,多线程 6.3.12 字长 6.3.13 编译器优化 6.4 架构 .原创 2021-03-03 11:47:39 · 365 阅读 · 2 评论 -
5.性能之巅 洞悉系统、企业与云计算 --- 应用程序
5.1 应用程序基础 5.1.1 目标 5.1.2 常见情况的优化 5.1.3 观测性 5.1.4 大O 标记法 5.2 应用程序性能技术 5.2.1 选择I/O 尺寸 5.2.2 缓存 5.2.3 缓冲区 5.2.4 轮询 5.2.5 并发和并行 5.2.6 非阻塞I/O 5.2.7 处理器绑定 5.3 编程语言 5.3.1 编译语言 5.3.2 解释语言 5.3.3 虚拟机 5.3.4 垃圾回收 5.4 方法和分析 5.4.1.原创 2021-03-01 16:17:34 · 280 阅读 · 0 评论 -
4.性能之巅 洞悉系统、企业与云计算 --- 观测工具
4.1 工具类型 4.1.1 计数器 4.1.2 跟踪 4.1.3 剖析 4.1.4 监视(sar)4.2 观测来源 4.2.1 /proc 4.2.2 /sys 4.2.3 kstat 4.2.4 延时核算 4.2.5 微状态核算 4.2.6 其他的观测源 4.3 DTrace 4.3.1 静态和动态跟踪 4.3.2 探针 4.3.3 provider 4.3.4 参数 4.3.5 D 语言 4.3.6 内置变量 4.3.7 a.原创 2021-03-01 11:53:40 · 198 阅读 · 0 评论 -
3.性能之巅 洞悉系统、企业与云计算 --- 操作系统
3.1 术语3.2 背景 3.2.1 内核 3.2.2 栈 3.2.2 中断和中断线程 3.2.4 中断优先级 3.2.5 进程 3.2.6 系统调用 3.2.7 虚拟内存 3.2.8 内存管理 3.2.9 调度器 3.2.10 文件系统 3.2.11 缓存 3.2.12 网络 3.2.13 设备驱动 3.2.14 多处理器 3.2.15 抢占 3.2.16 资源管理 3.2.17 观测性3.3 内核 3.3.1 UNIX 3.3.2 .原创 2021-02-24 12:15:54 · 178 阅读 · 0 评论 -
2.性能之巅 洞悉系统、企业与云计算 --- 方法
第2 章 方法 2.1 术语2.2 模型 2.2.1 受测系统 2.2.2 排队系统2.3 概念 2.3.1 延时 2.3.2 时间量级 2.3.3 权衡三角 2.3.4 调整的影响 2.3.5 合适的层级 2.3.6 性能建议的时间点 2.3.7 负载vs.架构 2.3.8 扩展性 2.3.9 已知的未知 2.3.10 指标 2.3.11 使用率 2.3.12 饱和度 2.3.13 剖析 2.3.14 缓存 2.4 视角 2.4.1 资源分析 2.原创 2021-01-19 13:55:56 · 433 阅读 · 1 评论 -
1.性能之巅 洞悉系统、企业与云计算 --- 绪论
第1 章 绪论 1.1 系统性能1.2 人员 1.3 事情 1.4 视角 1.5 性能是充满挑战的 1.5.1 性能是主观的 1.5.2 系统是复杂的 1.5.3 可能有多个问题并存 1.6 延时 1.7 动态跟踪 1.8 云计算 1.9 案例研究 1.9.1 缓慢的磁盘 1.9.2 软件变更 1.9.3 更多阅读...原创 2021-01-15 19:01:57 · 214 阅读 · 0 评论 -
4.程序员的自我修养---静态链接
1.空间和地址的分配 可执行文件中的代码段和数据段都是由输入的目标文件中合并而来的。对于多个输入的目标文件,链接器如何将它们的各个段合并到输出文件的? 1.按序叠加 这样做会造成一个问题,在有很多输入文件的情况下,输出文件将会有很多零散的段。这样做非常浪费地址空间,因为每个段都要求有一定的地址 和空间对齐要求,比如对于 x86 的硬件来说,段的装载地址和空间的对齐单位是页,也就是...转载 2018-10-23 11:12:10 · 396 阅读 · 0 评论 -
11.程序员的自我修养---运行库
11.1 入口函数和程序初始化 11.1.1 程序是从 main 开始的吗 #include <stdio.h> #include <stdlib.h> int a = 3; int main(int argc, char* argv[]) { int *p = (int *) malloc(sizeof(int)); scanf(...转载 2018-12-12 10:57:55 · 527 阅读 · 0 评论 -
13.程序员的自我修养---运行库实现
13.1 C 语言运行库 13.1.1 开始 1.程序运行的最初入口点不是 main 函数,而是由运行库为其提供的入口函数。它主要负责三部分工作:准备好程序运行环境以及初始化运行库, 调用 main 函数执行程序主题,清理程序运行后的各种资源。 2.运行库为所有程序提供的入口函数应该相同,在链接程序时必须指定该入口函数名。 入口函数: void mini_crt_e...转载 2018-12-21 10:51:29 · 623 阅读 · 0 评论 -
12.程序员的自我修养---系统调用与API
12.1 系统调用介绍 系统调用是应用程序(运行库也是应用程序的一部分)与操作系统内核之间的接口,它决定了应用程序是如何与内核打交道的。 Windows 系统是完全基于 dll 机制的,它通过与 dll 堆系统调用进行了包装,形成了所谓的 Windows API。应用程序 所能看到的 Windows 系统的最底层的接口就是 Windows API。 12.1.1 什么是系统调用 在...转载 2018-12-19 13:32:03 · 448 阅读 · 0 评论 -
9.程序员的自我修养---Windows下的动态链接
1.DLL 简介 2.符号导入导出表 3.DLL 优化 4.C++与动态链接 5.DLL HELL...转载 2018-12-06 10:45:21 · 190 阅读 · 0 评论 -
10.程序员的自我修养---内存
10.1 程序的内存布局 现代的应用程序都运行在一个内存空间里面,在32位的系统里,这个内存空间拥有4GB的寻址能力。相对于16位时代 i386 的段地址 加 段内偏移的寻址模式, 如今的应用程序可以直接使用 32 位的地址进行寻址,这被称为平坦(flat) 的内存模型。在平坦的内存模型中,整个内存是一个统一的地址空间,用户可以使用 一个 32 位的指针访问任意内存位置。如, i...转载 2018-12-07 17:27:31 · 316 阅读 · 0 评论 -
8.程序员的自我修养---动态链接
1.共享库版本 共享库,其实从文件结构上来说,共享库和共享对象没什么区别,Linux 下的共享库就是普通的 ELF 共享对象。 1.共享库的兼容性 共享库的更新分为2类: 1.兼容更新 所有的更新只是在原有的共享库基础上添加一些内容,所有的接口都保持不变 2.不兼容更新 共享库更新改变了原有的接口,使用该共享库原有的接口的程序可能不能运行或者运行不正常...转载 2018-11-27 10:15:43 · 596 阅读 · 0 评论 -
7.程序员的自我修养---动态链接
1.为什么要动态链接 静态链接缺点: 1.静态链接的方式对于计算机内存和磁盘的空间浪费非常严重。特别是多进程操作系统情况下,静态链接极大的浪费了内存空间。 2.静态链接对程序的更新,部署和发布也会带来很大的麻烦。一旦程序中有模块更新,整个程序就要重新链接,发布给用户 要解决空间浪费和更新困难这2个问题最简单的办法就是把程序的模块互相分割开来,形成独立的文件,而不再将它们静态的链接...转载 2018-11-15 11:48:54 · 503 阅读 · 0 评论 -
6.程序员的自我修养---可执行文件的装载与进程
1.进程地址虚拟空间 程序是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件;进程是一个动态的概念,它是程序运行时的一个过程,很多时候把动态库 叫做运行时也有一定的含义。 每个程序被运行起来以后,它将拥有自己独立的虚拟地址空间,这个虚拟地址空间的大大小由计算机的硬件平台决定,具体的说是由 CPU 的位数决定的。 硬件决定了地址空间的最大理论上线,即硬件的寻址空间...转载 2018-11-06 11:38:48 · 387 阅读 · 0 评论 -
5.程序员的自我修养---Windows PE/COFF
Windows PE/COFF:转载 2018-11-06 11:30:37 · 227 阅读 · 0 评论 -
2.Linux性能诊断 --- 单机负载评估
1.Linux 性能诊断:单机负载评估 1.负载诊断流程: 1.观察 load average (平均负载) 2.观察 cpu, IO 是否存在瓶颈 从 load average 等总体性能入手,参考 cpu 使用率和 IO 等待时间等具体数字,从而自顶向下快速排查各个进程状态。 流程: load average : 1.cpu 瓶颈 1.IO 无瓶颈 ...转载 2018-12-29 10:33:23 · 360 阅读 · 0 评论 -
14.程序员的自我修养---附录
1.字节序 2.ELF 常见段 3.常用开发工具命令行转载 2018-12-24 17:28:12 · 220 阅读 · 0 评论 -
1.Linux性能诊断 --- 入门命令100条
1.useradd, groupadd // 增加用户,增加组 2.arch // 查看cpu架构3.cal //查看日历4.cat // 查看文件内容5.cd // 切换工作目录6.chgrp 组名 文件 // 改变文件组7.chmod //改变属性8.chown //改变文件所有者9.cksum 文件//计算 32 位循环冗余校验(CRC)校验和每个文件...转载 2018-12-25 14:36:34 · 159 阅读 · 0 评论 -
5.文件操作 --- 系统调用
1.目录 2.文件和设备 3.系统调用和设备驱动程序 4.库函数 5.底层文件的访问 http://www.91linux.com/html/2014/c_0428/10462.html http://blog.youkuaiyun.com/unix21/article/details/12843659 http://c.biancheng.转载 2017-04-25 23:58:00 · 415 阅读 · 0 评论 -
6.Linux性能诊断 --- 远程通信gRPC,kafka,docker
1.gRPC 2.kafka 3.docker转载 2019-01-10 10:32:22 · 401 阅读 · 0 评论 -
1.24小时365天不间断服务 --- 服务器及基础设施搭建入门
1.基础概念 AP服务器(Application Server) : 应用服务器,即能返回动态内容的服务器 CND : 内容分发网络 IPVS(IP Virtual Server, IP 虚拟服务器) : LVS 的成果之一,实现了负载均衡器不可获取的负载分流功能。 LVS(Linux Virtual Server, Linux 虚拟服务器) : Linux 中皆在搭建具有可扩展...转载 2019-01-19 14:37:03 · 1013 阅读 · 0 评论 -
7.Linux性能诊断 --- 分布式追踪系统体系概要
1.分布式追踪系统体系概要2.开源分布式追踪系统OpenCensus ...转载 2019-01-14 13:41:41 · 216 阅读 · 0 评论 -
9.Linux性能诊断 --- Web应用安全:攻击,防护与检测,IPv6,容器安全
Web应用安全:攻击,防护与检测 1.点击劫持 X-Frame-Options : 用来给浏览器指示允许一个页面是否可以在frame标签或者object标签中展示的标记。 2.基于ssl的中间人攻击 3.跨站脚本攻击 X-XSS-Protection : 当检测到跨站脚本攻击时,浏览器将停止加载页面。 配置选项: 0禁止XSS过滤; 1启用XSS过滤 Content...转载 2019-01-19 11:40:17 · 310 阅读 · 0 评论 -
2.24小时365天不间断服务 --- 优化服务器及基础设施的拓扑结构(冗余,负载分流,高性能的实现)
2.1引入反向代理apache模块 2.1.2 根据http请求的内容来控制系统的行为 1.若客户端请求的网址为 /images/logo.jpg, 则分配到图片专用服务器上 2.若客户端请求的网址为 /news , 则分配到生成动态内容的web服务器上 使用的是apache的 mod_rewrite 的 RewriteRule 功能。mod_rewrite 有很多强大的功能,如...转载 2019-01-24 11:37:59 · 330 阅读 · 0 评论 -
5.Linux性能诊断 --- 追踪技术
1.dtrace 2.strace+gdb3.ftrace5.go debug转载 2019-01-08 12:32:18 · 269 阅读 · 0 评论 -
8.Linux性能诊断 --- 浅谈基于数据分析的网络态势感知
浅谈基于数据分析的网络态势感知转载 2019-01-18 10:03:35 · 259 阅读 · 0 评论 -
4.Linux性能诊断 --- Linux工作流程&内存管理
Linux工作流程 : 1.POST加电自检 2.加载BIOS, BIOS 加载 CMOS , 取得硬件信息和自我检测,取得第一个可启动设备 3.读取第一个启动设备内 MBR(MasterBoot Record,主引导分区) 的 Boot Loader 4.Boot Loader(主引导程序,识别操作系统的文件格式,决定装载哪个内核) 5.加载内核,内核检测硬件和加载驱动程序 6....转载 2019-01-07 11:33:08 · 229 阅读 · 0 评论 -
3.Linux性能诊断 --- 快速检查单(10个命令) & 监控
Linux 性能分析黄金60秒 运行以下10个命令,你可以在60秒内,获得系统资源利用率和进程运行情况的整体概念。 1.uptime 这是一个快速查看平均负载的方法,表示等待运行的任务(进程)数量。在Linux 系统中,这些数字包含等待cpu运行的进程数,也包括不间断IO阻塞的进程数(通常是磁盘IO)。 它展示了一个资源负载的整体概念。 2.dmesg | tail ‘dm...转载 2019-01-02 10:52:02 · 538 阅读 · 0 评论 -
3.程序员的自我修养---目标文件
1.目标文件的格式 现在 PC 平台流行的可执行文件格式主要是: 1.Windows 的 PE(Portable) 2.Linux 的 ELF(Executable Linkable Format) 它们都是 COFF(Common file format) 格式的变种。 ELF文件类型 可重定位文件(Relocatable File) : 这类文件包含了代码和数据,可以被用来链接...转载 2018-10-16 16:25:20 · 273 阅读 · 0 评论 -
2.程序员的自我修养---编译和链接
1.编译过程 1.预处理 gcc -E hello.c -o hello.i 源码文件和相关头文件等,被预编译器 cpp 预编译成一个 .i 文件。 预编译过程主要处理那些源代码文件中的以 "#" 开始的预编译命令。如 "#include", "define"等, 规则如下: 1.将所有的 "#define" 删除,并且展开所有的宏定义 2.处理所有条件预编译指令...转载 2018-09-29 12:03:15 · 358 阅读 · 0 评论 -
1.程序员的自我修养---简介
1.一个read()系统调用的过程 1.文件系统接收到 read 请求之后,判断出文件的前 4096 个字节位于磁盘的1000号逻辑扇区到1007号逻辑扇区。 2.然后文件系统向磁盘驱动发出一个读取逻辑扇区为 1000 号开始的8个扇区请求 3.磁盘驱动程序收到这个请求以后就向磁盘发出硬件命令 4.向硬件发送IO命令的方式有很多,其中最为常见的一种就是通过读写 IO 端口寄存器来实现。...转载 2018-09-26 10:50:12 · 1003 阅读 · 0 评论