アカウント名:
パスワード:
> 1つのIPアドレスで64k個のTCPコネクションしか張れないのは、スケーラブルではないと思います。
何を言っているんだ?listenしているIPアドレスとポート番号が1つに定まっていたとしても、connectするホスト毎に16bit分コネクションを張れるぞ。
おそらくサーバ側のポートの話でしょう。
ネットでは、次のような間違った解説をよく見かけます。
クライアントから同時に多数の接続を受けるサーバでは同時接続数がボトルネックになるので、それを増やすチューニングが必要になることがあります。具体的には(クライアントとして動くときの)ポートの範囲(特権ポートを除外するための設定)を、どこそこのパラメータを変えることで広げます。
あるいは
TCPコネクションが張られるとポート番号が1つ消費されてしまうが、しかしポートは番号65535個しかないので、数万個のTCPコネクションが張られるようなサイトを作るときには、サーバの分散化を検討しなければならない。
そういうTips集には本人が効果を試さずに書いているものが多々ありまして、LinuxでもWindowsでも、気休めでしかないものばかりです。
真実は、サーバ側のポート番号は常に1つです。たった1つのポートで、すべてのクライアントと通信できるのです。ただ、64K個のTCPコネクションを張るとなると、それだけでも相当なメモリ消費ですよ。SNDBUFとRCVBUFがそれぞれ64KBずつとしても、バッファだけで8GBにもなりますから。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
今回の教訓は? (スコア:0)
そろそろTCP/IPを見直すべき時期かもしれません。
1つのIPアドレスで64k個のTCPコネクションしか張れないのは、スケーラブルではないと思います。
あとは、低速&リソース食いのApacheなどを使用禁止とすべきでしょう。
Re: (スコア:0)
> 1つのIPアドレスで64k個のTCPコネクションしか張れないのは、スケーラブルではないと思います。
何を言っているんだ?
listenしているIPアドレスとポート番号が1つに定まっていたとしても、
connectするホスト毎に16bit分コネクションを張れるぞ。
Re: (スコア:0)
私の知るかぎり、IPアドレスによらずにポートがuniqueに割り当てられます。
Re:今回の教訓は? (スコア:2, 参考になる)
そういう実装になっていますよ。
試行 10000回
sv 192.168.0.10:80
├ cl 192.168.0.11:56055
├ cl 192.168.0.12:56055
この話題だと思っていますが・・・
Re:今回の教訓は? (スコア:3, 参考になる)
おそらくサーバ側のポートの話でしょう。
ネットでは、次のような間違った解説をよく見かけます。
あるいは
そういうTips集には本人が効果を試さずに書いているものが多々ありまして、LinuxでもWindowsでも、気休めでしかないものばかりです。
真実は、サーバ側のポート番号は常に1つです。たった1つのポートで、すべてのクライアントと通信できるのです。
ただ、64K個のTCPコネクションを張るとなると、それだけでも相当なメモリ消費ですよ。
SNDBUFとRCVBUFがそれぞれ64KBずつとしても、バッファだけで8GBにもなりますから。
Re: (スコア:0)
Re:今回の教訓は? (スコア:1)
意味わかんね。
同じ条件ならLinuxでも同様の結果になるはずです。