facebook使用memcached800个服务器来cache28个T的数据
facebook的工程师在调优memcached过程中从TCP移到UDP以减少网络流量(这是个老话题了,可以专门讨论:)),但是却发现UDP在Linux上性能下降的很厉害,原因是多个线程向一个socket传送数据造成锁的竞争。
另外Linux的内核对于网络软中断、IP包队列的处理都存在一些可优化的地方,经过优化后facebook声称他们的memcached可以处理200K/S的UDP请求平均的延迟是173毫秒,最大可以到500k而他们在Stock Linux上只能跑50K
Coherence的传输就是使用UDP,有一个专门的线程做网络读写,不存在竞争问题。
根据测试Coherence的进程可以在Stock Linux用足千兆网卡, 也试过10g网卡上传输超过500M/S的数据(当然涉及到Linux内核的这些问题,Coherence也是绕不过的,不过目前来说 Coherence的应用主要是企业应用,不是互联网应用,还不会有这么大的负载量,也不会OS的极限)
分享到:
相关推荐
在Linux系统中,UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了一种简单、快速的数据传输方式,不保证数据包的顺序、可靠性和重传,但具有较低的开销。本资料包“udp_linux.rar_udp服务器 Linux...
本话题主要聚焦于Linux环境下的UDP(User Datagram Protocol)网络编程,通过分析标题“udp.zip_linux UDP_udp linux”、描述“linux网络编程实例,UDP协议主客户端程序”以及相关的标签,我们可以深入探讨UDP协议...
**Linux环境下UDP协议详解** UDP(User Datagram Protocol)是一种无连接的传输层协议,与TCP(Transmission Control Protocol)相比,它提供了更快的数据传输,但牺牲了数据的可靠性和顺序保证。在Linux系统中,...
在本文中,我们将深入探讨如何在Linux环境下使用UDP(用户数据报协议)开发一个简单的点对点聊天程序。首先,让我们了解一下UDP协议的基本概念及其在Linux编程中的应用。 UDP是传输层的一种无连接协议,与TCP(传输...
在Linux系统中,UDP(User Datagram Protocol)是一种无连接的传输层协议,常用于需要快速传输数据且对数据完整性要求不高的场景。本教程将深入探讨如何在Linux环境下进行UDP编程,包括客户端和服务器端的实现。 ...
UDP sockets - UDP sockets code udpserver.c - Simple server using a UDP socket. udpclient.c - Simple client using a UDP socket.
这个“udp.rar”压缩包可能包含了一系列关于Linux环境下UDP网络编程的实例代码和文档,帮助开发者深入理解和实践UDP通信。 首先,UDP的主要特点包括: 1. **无连接**:UDP不建立连接就发送数据,而是直接将数据报文...
在Linux操作系统中,UDP(User Datagram Protocol)是一种无连接的传输层协议,常用于需要快速传输数据且对数据完整性要求不高的场景。本教程将深入探讨如何使用C语言在Linux环境下进行UDP通信,并通过实现简单的...
在Linux系统中,UDP(User Datagram Protocol)是一种无连接的传输层协议,它不提供连接建立、流量控制或错误恢复等机制,而是以尽可能快的速度发送数据包。由于其轻量级的特性,UDP常用于实时应用,如网络视频、...
在嵌入式Linux系统中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,常用于需要快速传输数据且不关心数据丢失的场景。与TCP(Transmission Control Protocol,传输控制协议)相比,UDP...
在Linux环境下,C语言是开发底层程序的常用工具,而UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,常用于实时数据传输和需要高效传输速度的场景。本篇将深入探讨如何使用C语言在Linux系统中...
这个“udp.rar_DEMO_linux UDP”压缩包很可能是包含了一些Linux环境下使用UDP协议进行编程的示例代码。下面我们将深入探讨Linux下UDP协议的操作及其相关知识点。 首先,我们要了解UDP的基本概念。UDP协议不提供像...
Linux UDP网络通信程序是计算机网络编程的一个重要领域,尤其对于初学者来说,理解并实践这一技术具有很高的价值。UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,它提供了简单而高效的数据传输...
本知识点将深入探讨Linux环境下的IPv6套接字(socket)编程,涵盖TCP和UDP两种传输层协议。 一、IPv6地址和接口 IPv6地址由8个16位的二进制块组成,通常以冒号分隔的十六进制形式表示,例如:2001:0db8:85a3:0000:...
本文将深入探讨如何在Windows和Linux系统下使用C++进行TCP和UDP的底层封装,以实现高效、稳定的数据传输。 1. TCP协议: TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在C++中,我们可以使用套接字...
"on_socket_chat_v1"可能是基于socket的聊天应用的第一个版本,可能是TCP或UDP,具体要看代码实现。"01975647chat"和"linux_socket"这两个文件名暗示了它们与Linux环境下的网络编程有关,可能包含TCP或UDP的实例。...
Linux UDP通信DEMO是一个用于演示如何在Linux操作系统中实现用户数据报协议(UDP)通信的示例代码。UDP是传输层的一种无连接协议,相对于TCP(传输控制协议)而言,它更加轻量级,适用于对实时性要求较高的应用场景...
在Linux操作系统中,UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,常用于需要快速传输数据但对数据完整性要求不高的场景。本文将深入探讨如何使用C++编程语言在Linux环境下实现基于UDP的简单...
这个名为“SOCKET-on-Linux.zip”的压缩包文件包含了一个关于Linux下Socket编程的文档,名为“SOCKET on Linux.doc”,我们将深入探讨其中涉及的知识点。 1. **Socket基础概念**: - Socket是网络通信中的接口,...
Linux UDP服务端和客户端程序的实现 Linux UDP服务端和客户端程序的实现是指在...在实践中,我们可以使用Linux UDP服务端和客户端程序的实现来实现各种应用场景,例如,文件传输、实时视频流媒体、online游戏等等。