cgroup (control group) 是 Linux 内核提供的资源管理机制,用于控制进程资源使用。它包含多个子系统,如 CPU、cpuacct、cpuset、memory、blkio、devices、net_cls 和 freezer,分别用于限制 CPU 使用率、统计 CPU 使用、分配 CPU 或内存节点、限制内存使用、限制块设备 I/O、控制设备访问、标记网络数据包和挂起或恢复进程。
Linux 内核里面实现了以下几种不同类型的 namespace。
epoll 通过改进的接口设计,避免了用户态 - 内核态频繁的数据拷贝,大大提高了系统性能。在使用 epoll 的时候,我们一定要理解条件触发和边缘触发两种模式。
在非阻塞 I/O 事件发生时,再调用对应事件的处理函数。这种方式,极大地提高了程序的健壮性和稳定性,是 Linux 下高性能网络编程的首选。
poll 是另一种在各种 UNIX 系统上被广泛支持的 I/O 多路复用技术
TCP四次挥手的重要概念,用于终止TCP连接。在四次挥手过程中,主动关闭方发送FIN包,被动关闭方接收并发送确认,最终完成连接的关闭。
在所有 TCP 服务器程序中,调用 bind 之前请设置 SO_REUSEADDR 套接字选项。这不会产生危害,相反,它会帮助我们在很快时间内重启服务端程序,而这一点恰恰是很多场景所需要的。
UDP的`connect`主要用来让应用接收“异步错误”信息。
两种保活方式:Keep Alive和心跳包
TIME_WAIT 的产生、作用以及优化
套接字在网络编程中扮演着重要角色,类似于电话和电话号码的概念。文章介绍了套接字的基本概念和工作原理,包括服务器端和客户端的初始化、连接建立、数据传输和断开连接的过程。
适用于DELLR740、R750机器的RAID卡
有了 Kubernetes,我们就能像管理一台 Linux 服务器那样,去管理数据中心了。
cgroup 限制 CPU 和内存
namespace 相关的技术,有六种类型,分别是 UTS、User、Mount、Pid、Network 和 IPC。
容器依赖的是 namespace 和 cgroup 对进程进行隔离。
网络虚拟化场景下网络包的发送过程
接受网络数据包的过程
从网卡接收到一个网络包开始。从硬件网卡解析到 IP 层。
即便在如此简单的一个环境中,网络包的发送过程,竟然如此的复杂。TCP/UDP->IPv4->ARP 这一条链。
共享内存和信号量的配合机制。
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号