更多>>关于我们
西安鲲之鹏网络信息技术有限公司从2010年开始专注于Web(网站)数据抓取领域。致力于为广大中国客户提供准确、快捷的数据采集相关服务。我们采用分布式系统架构,日采集网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效获取互联网任何公开可见信息。
您只需告诉我们您想抓取的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。
数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。
更多>>技术文章
近日公司多台代理服务器(Ubuntu系统)的Squid日志多次出现running out of filedescriptors异常记录,查看该Squid进程的Max open files(最大可打开文件数)发现只有65535。于是尝试将其调整大,期间遇到了一些坑,特总结如下。
根据以往的经验,我们先调整了系统级别的Max open files值(如下,设置为50万):
sudo bash -c "echo 'fs.file-max = 500000' >> /etc/sysctl.conf" sudo bash -c "echo '* hard nofile 500000' >> /etc/security/limits.conf" sudo bash -c "echo '* soft nofile 500000' >> /etc/security/limits.conf" sudo bash -c "echo 'root hard nofile 500000' >> /etc/security/limits.conf" sudo bash -c "echo 'root soft nofile 500000' >> /etc/security/limits.conf" sudo sysctl -p
重启系统,发现Squid进程的Max open files值仍然是65535(如下图所示,而不是我们设置的50万)。
用squidclient查看的结果也是如此(如下图所示):
squidclient -p 8888 -u 代理认证用户名 -w '代理认证密码' mgr:info | grep 'file descri'
看来只修改系统限制并不能有效增加Squid的Max open files。
那问题在哪儿呢?到底该如何有效地增加Squid的Max open files呢?
下面分别介绍 Ubuntu16.04下Squid3.5.12,以及Ubuntu14.04下Squid 3.3.8的设置方法。
(1)Squid 3.5.12 / Ubuntu16.04
编辑/etc/init.d/squid
sudo vi /etc/init.d/squid
搜索ulimit -n 65535(有两处,如下图所示是其中一处),将其都修改为ulimit -n 500000
执行如下命令重启Squid。
sudo systemctl daemon-reload sudo service squid restart
再次查下Squid进程的Max open files值(如下图所示),已经变成50万了。
再用squidclien验证下(如下图所示),数字已经变成50万了,设置成功。
(2)Squid 3.3.8 / Ubuntu 14.04
修改的文件不一样,需要修改的文件是/etc/init/squid3.conf,修改的内容是一样的(将ulimit -n 65535修改为ulimit -n 500000),比如我们还修改成50万。
sudo vi /etc/init/squid3.conf
修改之后重启Squid
sudo service squid3 restart
查看squid进程的Max open files,的确是变成50W了(如下图所示)。
注意:此处有坑!
但是squidclient查看Maximum number of file descriptors却仍旧是65535,如下图所示:
什么原因呢?
原来是在编译Squid3.3.8的时候加上了 --with-filedescriptors=65536选项(我用apt-get安装的官方二进制版本)。我们从Squid官方下载了3.3.8的源码,重新编译Squid,并将 --with-filedescriptors=65536选项去掉。编译完成后,用新生成的squid二进制文件覆盖原版本squid文件,重启Squid,再次测试,问题成功解决(如下图所示)。
注意,如果你的Squid的是3.1.23版本,设置方法不太一样(3.1.23版本配置文件里提供了max_filedesc参数),具体请参考我们之前的文章《CentOS Squid3 "WARNING! Your cache is running out of filedescriptors"问题解决》http://www.site-digger.com/html/articles/20160617/124.html。