ats
极永
这个作者很懒,什么都没留下…
展开
-
2015.8.3-2015.8.7 读书笔记 ats源码阅读
main函数: 1,关于软件版本信息的初始化工作,类AppVersionInfo 2,关于一些文件路径的初始化工作,类Layout 3,更改当前工作目录chdir,运行参数获取process_args,流缓冲区设置4,初始化DiagsConfig结构体,创建Diags,好像是一个日志管理服务(有待进一步考证)5,调用initialize_process_原创 2020-04-12 11:39:41 · 304 阅读 · 0 评论 -
core文件调试
转载至:http://blog.chinaunix.net/uid-23242010-id-2159345.html1. 生成core文件的目录必须可写$ sudo sysctl kernel.core_uses_pid=1$ sudo sysctl kernel.core_pattern=/tmp/core-%e-%p-%t可以将这些信息添加到/etc转载 2016-07-03 23:27:40 · 269 阅读 · 0 评论 -
core文件调试
转载至:http://blog.chinaunix.net/uid-23242010-id-2159345.html1. 生成core文件的目录必须可写$ sudo sysctl kernel.core_uses_pid=1$ sudo sysctl kernel.core_pattern=/tmp/core-%e-%p-%t可以将这些信息添加到/etc转载 2016-07-03 23:28:14 · 248 阅读 · 0 评论 -
cache源码分析一 存储机制分析
转载至:http://blog.chinaunix.net/uid-23242010-id-2182847.htmltrafficserver的cache层包含两层,它在内存中维护了一个ram cache,缓存热点数据,该层的具体描述见这里,与此同时ts提供了磁盘一级的存储。对比了一下trafficserver的cache存储系统与squid的coss文件系统,不难发现,它们的转载 2016-07-03 23:29:54 · 498 阅读 · 0 评论 -
squid存储机制
转载至:http://blog.chinaunix.net/uid-23242010-id-2973123.html 1. ufs, aufs, diskd文件系统 ufs, aufs, 以及diskd三种cache机制采用相同disk layout机制,它们都是基于文件系统的,采用二级索引机制,使用文件来存放一个cache o转载 2016-07-03 23:31:10 · 997 阅读 · 0 评论 -
cache源码分析二 读写逻辑分析
转载至:http://blog.chinaunix.net/uid-23242010-id-2183028.html 第一章指出,ts对大文件与小文件的存储方式略有不同。对于小文件,使用一个Doc保存所有的内容,而对于一个大文件,会使用一个Doc保存head部分,并将body分为多个fragment,每个fragment使用一个Doc来保存。通过将大文件分为多个fragment保存,可以避免一转载 2016-07-03 23:32:12 · 456 阅读 · 0 评论 -
eventsystem源码分析 多线程框架
转载至:http://blog.chinaunix.net/uid-23242010-id-2239465.html多线程框架需要完成的任务 (1) 作为一个服务器,它需要负责listen一个或多个端口,当有用户请求过来时,需要accept建立连接,完成连接后,需要监听每个建立好连接的socket是否可读或者可写。如果用户请求的内容没有保存在本地c转载 2016-07-03 23:33:17 · 261 阅读 · 0 评论 -
cache源码分析三 evacuate机制的实现
转载至:http://blog.chinaunix.net/uid-23242010-id-2915354.html之前分析过,trafficserver的cache机制本质上是将cache视为一个ring buffer,循环顺序向cache写入内容。同时我们也说过,trafficserver对大文件与小文件的存储方式是不相同的。对于小文件,head与body是放在一个整体存储的,而对于大文件转载 2016-07-03 23:34:32 · 2063 阅读 · 0 评论 -
cache源码分析四 初始化与元数据同步
转载至:http://blog.chinaunix.net/uid-23242010-id-2953692.html之前我们讨论过,cache的索引在trafficserver启动时,会从磁盘加载到内存中。这里有两个问题。 问题1:内存中的索引被更新后,与磁盘中保存的部分已经不一致,我们称之为脏了,这时需要将索引写回至磁盘中去。 问题2:设想转载 2016-07-03 23:35:08 · 362 阅读 · 0 评论 -
Web Cache替换算法分析(二)
转载至:http://blog.chinaunix.net/uid-23242010-id-147989.html本章主要描述TrafficServer中ram cache设计方案。TrafficServer在内存中维护了一个ram cache,用来保存用户频繁访问的热点文件或数据,以避免磁盘查找慢的问题。TS在刚开源的时候,ram cache的设计只是一个简单的LRU算法,后来,John P转载 2016-07-03 23:26:35 · 391 阅读 · 0 评论 -
Web Cache替换算法分析(一)
转载至:http://blog.chinaunix.net/uid-23242010-id-147401.html对于一个高性能服务器软件来说,cache层的设计好坏直接影响着系统性能。 web caching与传统操作系统中cache的区别: (1)HTTP协议支持整个文件的传输,因此一个web cache只有缓存了整个文件才能满足用户的请求。转载 2016-07-03 23:25:06 · 399 阅读 · 0 评论 -
ats新手测试环境搭建
转载:https://blog.zymlinux.net/index.php/archives/179此环境为个人测试所用,仅作参考。 假设为虚拟机搭建,A为物理机本机,B、C是虚拟机上的两台机(Centos6),当然B、C可以整合到一台机上(要考虑ats监听端口不跟nginx监听端口冲突)。基础配置:A:192.168.56.1,在浏览转载 2015-08-17 15:12:55 · 1079 阅读 · 0 评论 -
ATS程序功能和使用方法详解
转载:https://blog.zymlinux.net/index.php/archives/374ATS程序功能和使用方法详解Apache Traffic Server的程序文件,与传统的服务器系统有大不同,这里我们将会对这些文件进行详细的解读,并尽可能的对程序的功能和基本用法、参数等进一步说明,以利于新入门的同学们快速上手。本文中,我们以Fedora系统的安装结构进行转载 2015-08-17 16:34:56 · 4793 阅读 · 0 评论 -
http_ui查询接口配置
转载至:https://blog.zymlinux.net/index.php/archives/756ats自带的http_ui的web端查询接口挺实用的,可以查询cache对象信息,也可以查询一些有利于做分析的http数据。本文将针对cache对象查询做个配置演示。环境:ats的ip:192.168.168.130 监听端口:8080 ; 物理机虚拟网卡ip:192.168转载 2016-06-28 16:45:32 · 660 阅读 · 0 评论 -
TrafficServer一致性Hash的实现分析
转载至:http://blog.chinaunix.net/uid-23242010-id-93352.htmlts(TrafficServer)在iocore下面的cluster中的ClusterHash.cc下利用一种非常巧妙的方式实现了一致性hash算法,用于将需要缓存的对象object均匀地分配到Cluster集群中的各个节点中去。 ts在具体实现时规定:转载 2016-07-03 22:40:23 · 674 阅读 · 0 评论 -
TrafficServer一致性Hash的实验分析
转载至:http://blog.chinaunix.net/uid-23242010-id-93353.html 我们通过以下方法对TrafficServer的一致性Hash的性能进行测试,我们使用一个ip列表来模拟共有多少台机器参与Cluster进行测试,通过将每一个节点依次加入Cluster,然后再依次退出Cluster,每次加入节点和退出节点会重新构建hash映射,通过计算新的hash映转载 2016-07-03 22:41:40 · 405 阅读 · 0 评论 -
dns解析相关代码分析
转载至:http://blog.chinaunix.net/uid-23242010-id-93354.htmlTrafficServer提供了DNS解析相关的功能,相关模块为iocore/dns。目前dns模块还有很多问题需要解决[1]。 首先从配置管理上分析dns模块。以下给出ts配置文件records.config中与dns相关的配置选项:CONFI转载 2016-07-03 22:42:32 · 2341 阅读 · 0 评论 -
给一个数赋值优先级
转载至:http://blog.chinaunix.net/uid-23242010-id-93355.html在iocore/hostdb中, TrafficServer设计了一个dns cache,从cache的设计可以看出,TS在细节上几乎也做到了极致,以下是TS为一个bucket赋予优先级的代码,我将其整理出来,供大家学习研究#include stdio.h转载 2016-07-03 22:44:02 · 337 阅读 · 0 评论 -
异步事件模型
转载至:http://blog.chinaunix.net/uid-23242010-id-94816.htmltraffic server设计了一个基于事件驱动的多线程模型,通过EventSystem+Continuation完成了所有函数的异步调度。下图摘自apache提供的traffic server开发文档,给出了事件模型的结构图。 EventSy转载 2016-07-03 23:24:04 · 1401 阅读 · 0 评论 -
trafficserver的Net模块源码注释
Net的启动流程:main.ccmain()--->UnixNetProcessor::start()Net模块的启动intUnixNetProcessor::start(int, size_t){ EventType etype = ET_NET;//给NetHandler实例分配空间 netHandler_offset = eventProcesso转载 2015-08-09 10:00:25 · 488 阅读 · 0 评论