内核
什么是 Cgroups
control groups,控制组,也称为 cgroups,是 Linux 内核通过进程的层次化组织用于控制资源分配的功能
- 可以管控 CPU 时间片、系统内存、网路带宽,或者这些资源的组合。
通过使用 cgroups,系统管理员可以非常好的得到资源分配,权重,拒绝和管理以及监控系统资源。硬件资源也可以分配和应用程序和用户,有效增加利用率。
控制组提供了层次化组织和标记进程,并且将资源分配给进程的方式。传统上,所有的进程能够获得系统相似的资源,系统管理员可以调整进程的 niceness 值(优先值)。使用这种接近的方式,应用程序启动大量的进程就能够获得比较少进程的应用程序更多的资源,而不管较少进程的应用程序的重要程度。
通过绑定系统的 cgroup 层次化结构和 systemd 单元树,Red Hat Enterprise Linux 7 将资源管理设置从进程级别改到应用程序级别。这样就可以通过 systemctl 命令来管理系统资源,或者通过更改 systemd 单元文件。
udev
当服务器启动时,各种磁盘设备、网络设备的初始化顺序是随机的,每次识别出的 sdX 和 ethX 设备可能并不完全相同。例如,如果服务器上插了 U 盘,再次启动,可能 U 盘被识别成 sda 设备,而原先服务器中安装的命名为 sdaSAS 磁盘可能被识别成 sdb 设备。
udev 是 Linux2.6 内核里的一个功能,它替代了原来的 devfs,成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev 目录下的设备文件。不像之前的设备管理工具,udev 在用户空间 (user space) 运行,而不在内核空间 (kernel space) 运行。
udev 只为那些连接到 Linux 操作系统的设备产生设备文件。并且 udev 能通过定义一个 udev 规则 (rule) 来产生匹配设备属性的设备文件,这些设备属性可以是内核设备名称、总线路径、厂商名称、型号、序列号或者磁盘大小等等。
- 动态管理:当设备添加 / 删除时,udev 的守护进程侦听来自内核的 uevent,以此添加或者删除 /dev 下的设备文件,所以 udev 只为已经连接的设备产生设备文件,而不会在 /dev 下产生大量无用的设备文件。
- 自定义命名规则:通过 Linux 默认的规则文件,udev 在 dev 里为所有的设备定义了内核设备名称,比如 /dev/sda、/dev/hda、/dev/fd 等等。由于 udev 是在用户空间 (user space) 运行,Linux 用户可以通过自定义的规则文件,灵活地产生标识性强的设备文件名,比如 /dev/boot\_disk、/dev/root\_disk、/dev/color\_printer 等等。
- 设定设备的权限和所有者 / 组:udev 可以按一定的条件来设置设备文件的权限和设备文件所有者 / 组。
开启 BBR
modprobe tcp_bbr echo "tcp_bbr" >> /etc/modules-load.d/modules.conf echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p