前提・実現したいこと
Squidにて現在所持している700ほどのProxyからランダムに接続する多段、回転プロキシを作成しており、現在はほぼ再現できており実際にアクセス事にランダムにIPアドレスが変わるプロキシの作成に成功しましたがWindows環境から大量に並列で接続すると接続エラーが起きて大量の接続に対する、負荷に耐えられない状況となっていると思いこれらを改善するためにはどうしたら良いか教えていただけると助かります。
現問題点としてこの700のプロキシには定期的にオフラインになるものや応答速度が落ちてしまうものが存在しています。そのためそれらの応答を待ち続けてしまう場合などでキューに待機接続が大量に存在することになりそのキューの数がオーバーしているような形となります
最初はファイルディスクリプタ数が制限されていたことによるアクセス混雑が起きていましたがこちらは改善済みであり必ず1アクセス事にIPアドレスが変わってほしいので接続を使いまわすオプションなどは無効化しておりcache_peerに対してはまとめてタイムアウトを設定しております。
CPU、メモリ、ネットワークなどハード面では頭打ちしていませんでした
発生している問題・エラーメッセージ
並列数に上限が出てしまう(?)
LogFile
12021/09/15 02:08:16 kid1| TCP connection to 1.1.1.1/11 failed 22021/09/15 02:08:17 kid1| TCP connection to 1.1.1.1/11 failed 32021/09/15 02:08:19 kid1| TCP connection to 1.1.1.1/11 failed 42021/09/15 02:08:19 kid1| TCP connection to 1.1.1.1/11 failed 52021/09/15 02:08:21 kid1| TCP connection to 1.1.1.1/11 failed 62021/09/15 02:08:21 kid1| TCP connection to 1.1.1.1/11 failed 72021/09/15 02:08:22 kid1| TCP connection to 1.1.1.1/11 failed 82021/09/15 02:08:22 kid1| TCP connection to 1.1.1.1/11 failed 92021/09/15 02:08:24 kid1| TCP connection to 1.1.1.1/11 failed 102021/09/15 02:08:24 kid1| TCP connection to 1.1.1.1/11 failed 112021/09/15 02:08:24 kid1| Detected DEAD Parent: 1.1.1.1 122021/09/15 02:08:26 kid1| TCP connection to 1.1.1.1/11 failed 132021/09/15 02:08:29 kid1| TCP connection to 1.1.1.1/11 failed 142021/09/15 02:08:30 kid1| TCP connection to 1.1.1.1/11 failed 152021/09/15 02:08:33 kid1| TCP connection to 1.1.1.1/11 failed 162021/09/15 02:08:36 kid1| TCP connection to 1.1.1.1/11 failed 172021/09/15 02:08:38 kid1| TCP connection to 1.1.1.1/11 failed 182021/09/15 02:08:38 kid1| Detected DEAD Parent: 1.1.1.1 192021/09/15 02:08:40 kid1| Detected REVIVED Parent: 1.1.1.1 202021/09/15 02:08:49 kid1| Detected REVIVED Parent: 1.1.1.1 212021/09/15 02:13:31 kid1| TCP connection to 1.1.1.1/11 failed 222021/09/15 02:13:33 kid1| TCP connection to 1.1.1.1/11 failed 232021/09/15 02:13:37 kid1| TCP connection to 1.1.1.1/11 failed 242021/09/15 02:13:39 kid1| TCP connection to 1.1.1.1/11 failed 252021/09/15 02:13:44 kid1| TCP connection to 1.1.1.1/11 failed 26
ログファイルではプロキシが死んだり生き返ったりしている履歴が表示されていただけなので問題はなさそう?
該当のソースコード
bash
1via off 2forwarded_for off 3 4request_header_access From deny all 5request_header_access Server deny all 6request_header_access WWW-Authenticate deny all 7request_header_access Link deny all 8request_header_access Cache-Control deny all 9request_header_access Proxy-Connection deny all 10request_header_access X-Cache deny all 11request_header_access X-Cache-Lookup deny all 12request_header_access Via deny all 13request_header_access X-Forwarded-For deny all 14request_header_access Pragma deny all 15 16 17acl SSL_ports port 443 18acl CONNECT method CONNECT 19 20acl ip_user src 2.2.2.2 21acl ip_user src 3.3.3.3 22acl ip_user src 4.4.4.4 23acl ip_user src 5.5.5.5 24http_access allow ip_user 25 26cache_peer 1.1.1.1 parent 11 0 proxy-only no-query round-robin 27cache_peer 1.1.1.1 parent 11 0 proxy-only no-query round-robin 28cache_peer 1.1.1.1 parent 11 0 proxy-only no-query round-robin 29cache_peer 1.1.1.1 parent 11 0 proxy-only no-query round-robin 30cache_peer 1.1.1.1 parent 11 0 proxy-only no-query round-robin 31 32never_direct allow all 33never_direct allow CONNECT 34 35http_access deny !Safe_ports 36 37http_access deny CONNECT !SSL_ports 38 39http_access allow localhost manager 40http_access deny manager 41 42 43include /etc/squid/conf.d/* 44 45http_access allow localhost 46 47http_access deny all 48 49http_port 3128 50 51 52coredump_dir /var/spool/squid 53 54 55refresh_pattern ^ftp: 1440 20% 10080 56refresh_pattern ^gopher: 1440 0% 1440 57refresh_pattern -i (/cgi-bin/|?) 0 0% 0 58refresh_pattern /(Packages|Sources)(|.bz2|.gz|.xz)$ 0 0% 0 refresh-ims 59refresh_pattern /Release(|.gpg)$ 0 0% 0 refresh-ims 60refresh_pattern /InRelease$ 0 0% 0 refresh-ims 61refresh_pattern /(Translation-.*)(|.bz2|.gz|.xz)$ 0 0% 0 refresh-ims 62refresh_pattern . 0 20% 4320 63 64 65peer_connect_timeout 600 seconds 66 67max_filedescriptors 524288 68 69acl NOCACHE src all 70cache deny NOCACHE 71 72client_persistent_connections off 73server_persistent_connections off 74 75logformat combined %>a %<la %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh 76access_log /var/log/squid/access.log combined
試したこと
一切プロキシサーバーに対する大量負荷対策などが書かれていなかったため上記のソースコードに書いてある項目以外の最適化は行えていません
ただの中間プロキシ、大量のプロキシをまとめるだけに使いたいです。そして大量の通信をさばけるように
補足情報(FW/ツールのバージョンなど)
Squid 4.10
Ubuntu 20.04
あなたの回答
tips
プレビュー