客户端与服务器建立一个tcp连接,然后服务器维持这个tcp连接,服务器主要消耗什么资源,是不是消耗内存?服务器维持的tcp连接越多,内存占用就越高?维持tcp是主要占用服务器内存还是cpu?
如果维持tcp是占用内存,那么一个tcp占用多少内存空间,或者10万个tcp连接占用多大的内存空间?
客户端与服务器建立一个tcp连接,然后服务器维持这个tcp连接,服务器主要消耗什么资源,是不是消耗内存?服务器维持的tcp连接越多,内存占用就越高?维持tcp是主要占用服务器内存还是cpu?
如果维持tcp是占用内存,那么一个tcp占用多少内存空间,或者10万个tcp连接占用多大的内存空间?
其实维持连接,只是占用端口号而已。Linux
一切皆文件,所有连接的状态都被保存在文件当中的。
有些时候可能是想错了,以为连接就一定是活跃的,占用链路并且有数据传输的,其实不然。你试试把网线拔了,不作任何操作,再插上去,链路并没有断。这就是证明。
我是这么理解的= =不保证正确。
内核内存(包括各种数据结构及分配的缓冲区)、文件描述符、端口号、地址(五元组,大半比较固定,剩下的就不多了)。应该也会消耗系统总的打开文件数。
如果开了 keep alive,还会时不时地占用一丁点带宽及 CPU。