记录给ATS做cache预热的方法
磁盘准备
- 4 块 SSD 硬盘, 480G
- 给4块硬盘分别做 RAID 0 (记住要初始化)
编辑udev rules 文件, 配置raw磁盘
# Apache Traffic Server owns disk for RAW access ACTION=="add", KERNEL=="sdb", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sdc", RUN+="/bin/raw /dev/raw/raw2 %N" ACTION=="add", KERNEL=="sdd", RUN+="/bin/raw /dev/raw/raw3 %N" ACTION=="add", KERNEL=="sde", RUN+="/bin/raw /dev/raw/raw4 %N" KERNEL=="raw[1-4]", OWNER="nobody", GROUP:="trafficserver", MODE="660执行命令
groupadd trafficserver start_udev
ats配置文件
records.conf
CONFIG proxy.config.http.push_method_enabled INT 1
CONFIG proxy.config.http.cache.when_to_revalidate INT 3
CONFIG proxy.config.http.cache.required_headers INT 0
CONFIG proxy.config.log.logfile_dir STRING /data/var/log/trafficserver
remap.conf
regex_map http://(.*) http://$1
regex_map http://(.*):8080 http://$1
storage.conf
/dev/raw/raw1
/dev/raw/raw2
/dev/raw/raw3
/dev/raw/raw4
ip_allow.config
src_ip=192.168.5.151 action=ip_allow method=ALL
开始执行
创建日志目录
mkdir -p /data/var/log/trafficserver
Clear Cache
traffic_server -Cclear
Run Manager
traffic_manager
日志查看
traffic_logcat -f squid.blog
自动生成URL
sh gen_urls.sh
运行py脚本
sh ats_cache.sh
补充
由于该脚本频繁创建、关闭连接,导致系统出现很多TIME_OUT,用光了系统可用端口,故,
修改两个内核参数,
如下:
#开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
echo 1 > /proc/sys/net/ipv4/tcp_timestamps
#表示开启TCP连接中TIME-WAIT sockets的快速回收
echo 1 > /proc/sys/net/ipv4/ipv4.tcp_tw_recycle
相关shell脚本代码
git clone git@github.com:khalily/ats-cache.git