LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: singlewolf

Squid服务器工作不正常,求救啊!!!

[复制链接]
发表于 2007-5-17 19:53:28 | 显示全部楼层
你的用什么方式上网?

ISP有没有做什么手脚?
回复 支持 反对

使用道具 举报

发表于 2007-5-18 20:35:52 | 显示全部楼层
不太可能是ISP啊:不用squid,用nat时没有这个问题。用nat的话ISP看到的流量应该更多。除了请求多少之外,ISP又不会去管请求来自squid还是通过nat,ISP看到的请求都是通过网关发出的。而且重启网关马上就好。

确定在不用squid的时候,即使用户很多,也不会出现类似情况?

另外,把你的squid.conf贴出来,可能是你的配置文件问题。(感谢 Jeff Pang: http://home.arcor.de/jeffpang/squid/index.html )
回复 支持 反对

使用道具 举报

发表于 2007-5-19 06:44:07 | 显示全部楼层
squid权威指南中第三章
1. ulimit -n 4096
   跟改系统文件描述符echo 8192 > /proc/sys/fs/file-max
   加载squid启动脚本里

重新编译squid,之前改下usr/include/bits/types.h
改变为 #define _ _FD_SETSIZE    8192

2.echo "1024 40000" > /proc/sys/net/ipv4/ip_local_port_range
  加到启动脚本
回复 支持 反对

使用道具 举报

发表于 2007-5-19 15:34:39 | 显示全部楼层
1. 似乎是在
/usr/include/bits/typesizes.h:#define   __FD_SETSIZE            1024
里边的。
回复 支持 反对

使用道具 举报

发表于 2007-5-21 11:17:04 | 显示全部楼层
恩,写错了,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-27 10:00:45 | 显示全部楼层
会不会是 squid 2.6 本身的 bug ,因为我看到的配置文章讲的都是 squid 2.5

这个版上有人成功的配置 squid 2.6,并且让它长期运行吗(带 60 台机器的负载,应该不算重吧)????

有过实战经验的人站出来说一下啊~~~~~~~谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-27 10:08:07 | 显示全部楼层
最大文件描述符肯定不是这个问题,因为我重新编译了 squid ,最大文件描述符已经设为 32768 了,/proc 下的 file-max 也开了,也先 ulimit -n 65535 ,然后再启动 squid

用 cachemgr 查看,显示 squid 的信息为最大可用文件符为 32768 ,

所以可以肯定,不是文件描述符不够的原因


我用NAT一切都很正常,连续跑了一个星期,整个网关非常正常,大家上网都没问题

昨天又试了一下,开了 squid ,才正常运行了 2,3 个小时,又出问题了,局域网内大家都上不了网页了,老问题,我在网关上也居然上不了网页了(ping www.sohu.com 能ping通,就是上不了网页),强行 kil l掉 squid ,重新恢复 iptables (因为之前用 iptables 把 80 的请求都重定向到 3128 去了),结果还是一样,网关自己都上不了网,没办法,只好重启整个系统,重启完一切就正常了~~~~~

最奇怪,为什么 squid 会导致我的网关自己都上不了网页??????   

下面是我的详细配置:
网关服务器:  
2 颗 AMD x86_64 的 CPU (双核,也就是说看起来是有4颗CPU)
8G 内存
装的是 FC6 X86_64 版本的
Squid 2.6 stable 13 (就是最新的,我自己去编译的,之前也用了 FC6 自带的 squid,但大家说可能是 1024 文件描述符的问题,所以我就去找了个最新的,然后来编译)

网络:两块网卡,内网 eth0 (10.0.0.201) ,外网eth1(166.111.205.27),外网是连接到清华的校园网中的,
只要用这个166.111的地址就可以上网,内网是 10.0.0.0/24

以下是 squid.conf 的配置

# Squid normally listens to port 3128
http_port 10.0.0.201:3128  transparent  //只绑内网地址,所以不应该影响到我的外网地址,可是为什么
                                        //squid有问题了,网关自己也上不了网页了呢???
cache_mem 512 MB                        //我有8G内存,这点根本不在乎,呵
cache_swap_low 70
cache_swap_high 80
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_dir aufs /home/SQUID/cache 4096 16 256 //4G 空间,不管是 ufs 或 aufs 我都试过,都一样的情况
access_log /home/SQUID/log/access.log
cache_log /home/SQUID/log/cache.log
cache_store_log /home/SQUID/log/storage.log
connect_timeout 30 seconds        //缺省的是 2min ,我以为是这个原因,所以改成30s,结果还是老问题
http_access allow all
always_direct allow all

就改了这么一点配置,想搭个最简单的服务器

网关的 iptables 设置

iptables -t nat -A PREROUTING -i eth0 -p TCP -d ! 10.0.0.0/24 --dport 80 -j REDIRECT --to 3128
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -d ! 10.0.0.0/24 -o eth1 -j MASQUERADE

昨天 squid 运行了 2,3 个小时就出问题了,我的运行方式  squid -N -d1 ,屏幕上没有打出任何 warning 之类的东西,查看了 cat /var/log/messages | grep squid ,也没关任何关于 squid 的东西

用 cachemrg 查看当时的状态,如下:

CacheMgr@10.0.0.201: infoCache Manager menu



Squid Object Cache: Version 2.6.STABLE13
Start Time:Sat, 26 May 2007 06:53:21 GMT
      Current Time:Sat, 26 May 2007 07:47:18 GMT

Connection information for squid:
        Number of clients accessing cache:        27
        Number of HTTP requests received:        953
        Number of ICP messages received:        0
        Number of ICP messages sent:        0
        Number of queued ICP replies:        0
        Request failure ratio:         0.00
        Average HTTP requests per minute since start:        17.7
        Average ICP messages per minute since start:        0.0
        Select loop called: 45553 times, 71.067 ms avg
Cache information for squid:
        Request Hit Ratios:        5min: 33.3%, 60min: 10.8%
        Byte Hit Ratios:        5min: 100.0%, 60min: 18.9%
        Request Memory Hit Ratios:        5min: 0.0%, 60min: 7.9%
        Request Disk Hit Ratios:        5min: 17.2%, 60min: 30.7%
        Storage Swap size:        156836 KB
        Storage Mem size:        904 KB
        Mean Object Size:        16.17 KB
        Requests given to unlinkd:        0
Median Service Times (seconds)  5 min    60 min:
        HTTP Requests (All):   0.89858  3.66001
        Cache Misses:         83.82846  9.16462
        Cache Hits:            0.02190  0.01387
        Near Hits:             0.00000  1.05672
        Not-Modified Replies:  0.01469  0.00975
        DNS Lookups:           0.00000  0.00094
        ICP Queries:           0.00000  0.00000
Resource usage for squid:
        UP Time:        3237.296 seconds
        CPU Time:        1.412 seconds
        CPU Usage:        0.04%
        CPU Usage, 5 minute avg:        0.03%
        CPU Usage, 60 minute avg:        0.04%
        Process Data Segment Size via sbrk(): 5512 KB
        Maximum Resident Size: 0 KB
        Page faults with physical i/o: 0
Memory usage for squid via mallinfo():
        Total space in arena:    5512 KB
        Ordinary blocks:         5490 KB     43 blks
        Small blocks:               0 KB      0 blks
        Holding blocks:         11668 KB      5 blks
        Free Small blocks:          0 KB
        Free Ordinary blocks:      21 KB
        Total in use:           17158 KB 100%
        Total free:                21 KB 0%
        Total size:             17180 KB
Memory accounted for:
        Total accounted:         3171 KB
        memPoolAlloc calls: 160011
        memPoolFree calls: 124925
File descriptor usage for squid:
        Maximum number of file descriptors:   32768
        Largest file desc currently in use:     50
        Number of file desc currently in use:   48
        Files queued for open:                   0
        Available number of file descriptors: 32720
        Reserved number of file descriptors:   100
        Store Disk files open:                   3
        IO loop method:                     poll
Internal Data Structures:
          9744 StoreEntries
           220 StoreEntries with MemObjects
           203 Hot Object Cache Items
          9700 on-disk objects



Generated Sat, 26 May 2007 07:47:18 GMT, by
cachemgr.cgi/2.6.STABLE13@CDPServeryu


         Return to squid index

可以看到,打开文件数其实很小,根本不是因为这个原因

看到网上有人说日志文件太大会出问题,于是我查看了一下三个 log 文件(access.log ....)
由于只开了2,3 个小时,这三个文件大小分别为 access.log 4.3M ,cache.log 66K , storage.log 5.6M
如是述也算太大了的话,那 squid 不用跑了~~~

老问题,局域网关没有人可以上网,IE中输入 www.tsinghua.edu.cn (我们的校网,我们是校内地址访问,
应该可以排除网络本身的原因了吧),就一直没反应,不管什么网页都是这样, ping www.tsinghua.edu.cn
速度非常快

最不可理解的是,我在网关上 lynx www.tsinghua.edu.cn  显示 connecting www.tsinghua.edu.cn
然后也是一直没反应,可是我的网关有外部地址 166.111.205.27 ,而且我的 squid 只绑在了内部地址
10.0.0.201:3128 之上啊,没道理我的网关也上不了网啊~~~~~

把 squid kill 掉,把 iptables 的那个 -j REDIRECT 的去掉,只用 NAT ,还是一样,上不了网~~~

没办法,重启系统,Ok,一切就又恢复正常了~~~~

现在只敢开 NAT ,不敢开 squid ,NAT 一切正常,跑了几个星期了,squid 一开,最快是昨天2,3个小时,
最长的时候为 2 天,然后就出现这种问题了,死活查不出原因,汗~~~~

squid 出问题的时候,我一样可以 telnet bbs.newsmth.net ,上 ftp 都行,所以可以肯定,不是我的
网络当时有问题,ping 所有的网站都很正常,就是上不去,一定是 squid 的问题,

我想到一种可能性,因为我在网关上自己都上不了 lynx www.sohu.com 都不行,有一种可能,比如说,Linux
系统允许最大的 http 连接为 200 ,现在 squid 出问题了,它把这 200 个全占了,于是我在网关上,虽然有
外部 IP 地址,但是它无法分配到连接,所以也一样上不了网~~~~~

我不知道 Linux 系统有这样的限制吗??? 我用 netstat -atpn | grep squid | wc --lines ,上次
squid出问题是显示为 114 ,还有一次为 200 ,这么点不至于让一个系统的连接都消耗尽吧????

我现在实在没办法了,看了网上很多关于 squid 配置的文章,可是似乎从来没有人遇到过 squid 出现我这种
情况的,而且根本不知道是什么原因,squid 根本就没有报错,运行一切很正常,好诡异~~~~~

或者,会不会是 squid 2.6 本身的 bug ,因为我看到网上的文章讲的配置都是 squid 2.5 的!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2007-5-27 21:28:16 | 显示全部楼层

有没有可能是网卡的问题

你试下 service network restart看看网卡问题
或用service iptables restart看看 iptables有没有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-27 21:38:04 | 显示全部楼层
可是不用 squid 的时候一点都没问题啊

squid 会影响网卡???
回复 支持 反对

使用道具 举报

发表于 2007-5-30 08:05:06 | 显示全部楼层
重要的log都在这里: /home/SQUID/log/*
另外 -N -d 1再改大一点试试,比如-d 10。
非常详细的调试信息(关于外网访问的是17)可以通过squid.conf debug_options 17,9
打开。这时cache.log会有很多关于外网访问的信息。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表