我正在尝试使用wget制作网络抓取工具。爬虫只获取子域的主页,我正在运行它:
cat urls.txt | xargs -n 1 -P 800 -I {} wget {} --max-redirect 3 --tries=1 --no-check-certificate --read-timeout=95 --no-dns-cache --connect-timeout=60 --dns-timeout=45 -q
当我跑步时,我只能获得~5mbps的速度。我正在爬行的服务器有100mbps的带宽连接,可以从20mbps +的各个站点下载文件。
我该怎么做才能加速这个抓取工具?
注意: 名称服务器是Google DNS(8.8.8.8)
我有这些ulimits
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 254243
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 100024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 254243
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
并尝试过这些速度调整:
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 30 > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range