IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

[Squid] TCP_MEM_HIT 和 TCP_HIT 的性能到底相差多远

扶凯 2010-08-17 10:20:48 累计浏览 4,472 次
本机暂存

在内存中命中,使用 Squid 本身的机制来 Cache 文件,和文件系统本身的 Cache 机构时,Squid 内存 Cache 机构性能提高会有多少。

压力测试语句

./ab -c 100 -n 30000   "http://test.php-oa.com:81/4k.html?cct00003000"

测试用的 AB ,并发 100 打 3W 次压力,文件的大小是 4k 的小文件。使用 16 进制来随机生成文件名。这样来测试,为了保证有效性,我先前打了二次,不做为记录,只为了 Cache ,然后在 Squid  中配置大点的内存来存放这些小文件。

系统的配置,机器有点老。不好意思,哈哈

cache_mem 2048 MB
maximum_object_size 409600 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 4096 KB

1. TCP_MEM_HIT 时的数据

这是打出来的数据。当所有的 Object 都是内存命中时的性能,如果随机数,在少点,上 5k 是很容易的。这是每秒处理完的响应。

Time taken for tests:   6.979 seconds
Complete requests:      30000
Failed requests:        0
Write errors:           0
Total transferred:      135908818 bytes
HTML transferred:       122884096 bytes
Requests per second:    4298.66 [#/sec] (mean)
Time per request:       23.263 [ms] (mean)
Time per request:       0.233 [ms] (mean, across all concurrent requests)
Transfer rate:          19017.79 [Kbytes/sec] received

2.TCP_HIT时的数据

然后重起 Squid 。因为重起 squid 时会给所有的数据保存到硬盘中,这时文件就不在会变成 TCP_MEM_HIT,只会是 TCP_HIT。然后在 使用 并发 100 打 3W 次压力.

Concurrency Level:      100
Time taken for tests:   8.915 seconds
Complete requests:      30000
Failed requests:        0
Write errors:           0
Total transferred:      135934529 bytes
HTML transferred:       122884096 bytes
Requests per second:    3365.13 [#/sec] (mean)
Time per request:       29.717 [ms] (mean)
Time per request:       0.297 [ms] (mean, across all concurrent requests)
Transfer rate:          14890.54 [Kbytes/sec] received

TCP_MEM_HIT 和 TCP_HIT 总结:

很明显的,当响应是TCP_MEM_HIT 时,量能打到4298.66 [#/sec] 和 TCP_HIT时3365.13 [#/sec] ,从流量上也能看出来。我担心是不是 I/O 影响了性了,在 TCP_HIT 时,使用 iostat 监控了多次硬盘,基本没有什么 I/O 操作,说明被文件系统本身 cache 到内存中了。

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 浅析http协议、cookies和session机制、浏览器缓存 (累计阅读 17,445)
  2. 淘宝图片存储架构 (累计阅读 10,959)
  3. 使用Squid缓存视频 (累计阅读 10,339)
  4. 大型高并发高负载网站的系统架构分析 (累计阅读 9,004)
  5. TT的作者出新作品鸟:kyoto tycoon (累计阅读 7,950)
  6. Buffer和cache的区别是什么? (累计阅读 7,939)
  7. 基于Squid的视频业务日志分析 (累计阅读 7,001)
  8. 系统架构的一些思考 (累计阅读 6,792)
  9. 学习:一个并发的Cache (累计阅读 6,101)
  10. PHP 性能优化技巧-google (累计阅读 6,041)