热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

squid2.5的性能优化过程和squid.tgz下载

到目前看来,经过本文优化的squid2.5,其cpu占用率要优于squid3.0两倍,稳定性非常优秀。我就没对squid2.6进行过测试,因为这个2.5已经非常的不错了。在一个文件下载系统中,单机跑上1.5万的established没太大问题。安装的优化过程主要有两步:打上epoll补

到目前看来,经过本文优化的squid2.5,其cpu占用率要优于squid3.0两倍,稳定性非常优秀。我就没对squid2.6进行过测试,因为这个2.5已经非常的不错了。在一个文件下载系统中,单机跑上1.5万的established没太大问题。

安装的优化过程主要有两步:打上epoll补丁和利用上google_perftools,这些步骤都需要首先确保系统的内核在2.6以上。

1、安装epoll补丁

epoll补丁是比较难装的,因为它需要automake-1.5和autoconf-2.13,所以一般我都是大一个tgz包四处拷贝着用的,倒也没发现有什么问题。在这里我还是把编译安装过程整理一份吧,有兴趣的同僚可以一试。

我用来编译的这台机器操作系统是Red Hat Enterprise Linux Server release 5 (Tikanga),自己有automake1.5,不过我还是不知道怎么用这个1.5。

先安装autoconf2.13

cd /root
wget http://mirrors.kernel.org/gnu/autoconf/autoconf-2.13.tar.gz
tar -xzf autoconf-2.13.tar.gz
cd autoconf-2.13
./configure
make
make install

再安装automake1.5

cd /root
wget http://mirrors.kernel.org/gnu/automake/automake-1.5.tar.gz
tar -xzf automake-1.5.tar.gz
cd automake-1.5
./configure
make
make install

这两个东西都会安装到/usr/local/bin/下面,/usr/bin下面也有同样的文件,所以,为了让系统更好的识别,到这一步我执行:

su -

重新登录一下

下载epoll补丁,这个补丁在squid的官方站上有下载。

http://devel.squid-cache.org/old_projects.html#epoll

找了好久才找得到噢,如果下载不了,可以从sudone这里下。

http://www.sudone.com/download/squid_epoll.patch

然后去找一个squid2.5的最新版本下载

http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE14.tar.bz2

我最近发现一个软件,叫讯雷,用它居然可以下载得很快噢,推荐给大家。

下完之后解开,然后先把补丁打上

cd squid-2.5.STABLE14
patch -p1 <../squid_epoll.patch

打完补丁后执行一下

./bootstrap.sh

检查一下,免得浪费时间去编译,如果看到是一堆warning,那么证明是可以编译成功的,否则虽然编译可通过,但编译出来的东西是不对的

开始configure,make,make install

./configure --prefix=/usr/local/squid --enable-async-io=256 --enable-cache-digests --disable-ident-lookup --enable-removal-policies=heap lru --disable-snmp --enable-dlmalloc --enable-kill-parent-hack --enable-underscores --enable-delay-pools --enable-epoll --disable-poll --disable-wccp --disable-select --with-maxfd=65535 --with-aio --with-large-files --enable-err-language=English, Simplify_Chinese --enable-default-err-language=Simplify_Chinese
make -j20
make install

执行完之后,可以执行这个命令检查结果:

strings /usr/local/squid/sbin/squid | grep epoll_ctl

如果看到有输出,那证明是万事大吉啦。

此时就编译好了一个支持epoll的squid,然后照着把配置文件和权限配好就可以启动使用了。我把squid下面share目录里的错误界面除了中文和英文其它的删除,然后打了几个包,可以直接下载使用。不过,这些包都是要放在相应的目录里才能使用,如果放在别的目录里,那要用ln -s做软链接链到相应目录就可以正常用了。

下载squid2.5_epoll_home.tgz(放在/home/squid目录)
下载squid2.5_epoll_usr_local.tgz(放在/usr/local/squid目录)

2、安装google_preftools

squid配合上这个东东,性能上是能有所提高的,不过具体的我也不清楚怎么测试,只是在某些系统上用上去之后,发现变得更稳定了。

在这里可以下载到最新的google_perftools

http://code.google.com/p/google-perftools/

安装它,我这里有现成的脚本

#!/bin/sh

if [ -s /usr/lib/libtcmalloc.so ]; then
echo google_perftools 已安装
else

if [ `uname -r|egrep -c ^2.6` -eq 1 ]; then
echo 安装google_perftools
cd ${BASE_DIR}download
wget -q http://google-perftools.googlecode.com/files/google-perftools-0.97.tar.gz
tar -zxf google-perftools-0.97.tar.gz
cd google-perftools-0.97
if [ `uname -m|grep -c 64` -eq 1 ]; then
./configure --prefix=/usr --enable-frame-pointers >& /dev/null
else
./configure --prefix=/usr >& /dev/null
fi
make -j10 >& /dev/null
make install >& /dev/null
cd $OLD_PWD
else
echo linux内核版本需要2.6以上才能安装google_perftools
fi

fi

#end

运行就能装好了,然后把squid启动命令换一下,并记得打开系统文件数限制

ulimit -n 65535
LD_PRELOAD=/usr/lib/libtcmalloc.so /usr/local/squid/sbin/squid -DV

启动成功就可以使用了,比较简单

配置文件我这里有一份通用的,拿去改改就行

这些工作做完之后,这个2.5的squid就变成了足够强的cache服务器,cpu占用率高的时候也仅有10%-20%,可负载的established数量估计可达2万。

--------------------

今天有朋友反应下载的二进制文件执行时出现段错误不能使用,因为我是在Redhat AS5上编译的,今天我用Redhat AS4重新编译了一次,在Redhat AS4/5、Ubuntu8.10/7.10/6.6、debian etch/testing下执行都没有问题了,如再有问题,可再email我。


推荐阅读
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 下载地址http:www.kbengine.org这货不错安装在Linux上安装(CentosDebianUbuntuetc.)服务端,请在终端输入:pythonkbenginek ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
author-avatar
手机用户2502876273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有