Je suis en train d'exécuter 25 tâches difficiles, chacune ayant 50 demandes simultanées sur une machine lourde (avec Ubuntu 12.04.3 LTS). J'utilise des procurations pour envoyer des demandes. Après environ 15 minutes, je reçois cette erreur de presque toutes les demandes:
Connection was refused by other side: 111: Connection refused.
J'ai contacté le fournisseur de services proxy et ils ont dit que ce problème venait de la gestion des sockets de mon côté.
Donc, mes scripts envoient 1250 demandes simultanées. Y at-il de toute façon je pourrais savoir où est le problème? Y a-t-il une limite de connexion sur Ubuntu?
J'ai fait un peu de recherche sur ceci et j'ai trouvé un fil très semblable sur serverfault ici . Il semble que votre noyau puisse constituer un facteur limitant dans ce cas particulier, car une telle quantité de connexions simultanées n’est pas très courante. La réponse acceptée indique que cela pourrait être dû au débordement de la table ip_conntrack.
Sous Ubuntu (Serveur), un correctif pourrait être la définition de paramètres personnalisés dans /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_max = 32768
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_Orphan_retries = 1
net.ipv4.tcp_fin_timeout = 25
net.ipv4.tcp_max_orphans = 8192
net.ipv4.ip_local_port_range = 32768 61000
S'il vous plaît jetez un oeil à la discussion que j'ai lié à, et soyez toujours très prudent avec des configurations personnalisées.
J'ai eu le même problème. Essayez de lancer votre araignée en tant que superutilisateur. J'exécutais l'araignée directement avec la commande scrapy runspider
, alors que je venais d'essayer de l'exécuter avec:
Sudo scrapy runspider
ça a marché.