十七、内核

wangzhaoyang 发布于 5 天前 18 次阅读 网络工程中的Linux系统 无~ 1724 字


1. 内核的功能和组成

Linux内核是操作系统的核心部分,负责管理系统资源和提供基本服务。其主要功能包括:

  • 进程管理
  • 创建、调度和销毁进程。
  • 处理进程间的通信和同步。
  • 实现多任务处理,确保各个进程能够并发执行。
  • 内存管理
  • 管理系统内存的分配和回收。
  • 使用虚拟内存技术,允许进程使用比物理内存更大的地址空间。
  • 实现内存保护,防止进程间的内存干扰。
  • 设备驱动
  • 提供与硬件设备的接口,允许操作系统与硬件进行交互。
  • 处理设备的输入输出操作,确保数据的正确传输。
  • 文件系统管理
  • 管理文件的存储、访问和权限。
  • 提供统一的文件操作接口,支持多种文件系统格式。
  • 网络管理
  • 处理网络协议栈,支持网络通信。
  • 实现网络设备的管理和数据包的转发。

内核的组成部分包括:

  • 内核空间:执行内核代码的区域,具有更高的权限。
  • 用户空间:运行用户应用程序的区域,权限较低。
  • 系统调用接口:用户程序与内核之间的交互接口。

2. 配置内核参数

Linux内核参数可以通过以下两种方式进行配置:

  • 临时配置
  • 通过 /proc/sys 目录下的文件进行修改,这种修改在系统重启后会失效,适合临时测试。
  • 示例命令: # 查看当前内核参数 [root@localhost ~]# sysctl -a # 修改某个内核参数 [root@localhost ~]# sysctl -w net.ipv4.ip_forward=1
  • 永久配置
  • 通过修改 /etc/sysctl.conf 文件或 /etc/sysctl.d/ 目录中的配置文件来设置,这种修改在系统重启后依然有效。
  • 示例命令: # 使配置文件生效 [root@localhost ~]# vim /etc/sysctl.conf net.ipv4.ip_forward=1 [root@localhost ~]# sysctl -p

3. 调整调优配置文件

在Linux系统中,调优配置文件用于优化系统性能。可以使用 Tuned 工具来管理这些配置文件。调优配置文件通常位于 /etc/tuned/ 目录下,用户可以根据不同的工作负载创建或修改配置文件。

  • 创建自定义配置文件
  • 根据特定的应用需求,创建新的调优配置文件。
  • 使用预定义配置文件
  • 系统提供了一些预定义的配置文件,可以直接使用。
  • 示例命令:
    bash # 切换到特定的调优配置文件 [root@localhost ~]# tuned-adm profile throughput-performance

4. 加载和配置内核模块

内核模块是可加载的代码块,允许在运行时扩展内核的功能。加载和配置内核模块的步骤如下:

  • 加载模块
  • 使用 insmodmodprobe 命令加载模块。
  • 示例命令: # 加载模块 [root@localhost ~]# sudo insmod my_module.ko # 使用 modprobe 加载模块(自动处理依赖) [root@localhost ~]# sudo modprobe my_module
  • 卸载模块
  • 使用 rmmod 命令卸载模块。
  • 示例命令: # 卸载模块 [root@localhost ~]# sudo rmmod my_module
  • 配置模块参数
  • 在加载模块时,可以通过命令行传递参数,或者在 /etc/modprobe.d/ 目录下创建配置文件来设置模块参数。
  • 示例配置文件内容:
    options my_module param1=value1 param2=value2

tuned

1. tuned工具介绍

tuned是一项守护程序,它会使用udev来监控联网装置,并且根据选择的配置文件对系统设置进行静态和动态的微调。它有许多为常见使用案例(例如高吞吐量、低延迟或者节电)的预定义配置文件,并且允许用户更改为每个配置文件定义的规则,还可以自定义如何对一个特定的设备进行微调。

2. 安装tuned工具

在Linux系统中,可以通过包管理器安装tuned。以CentOS为例,可以使用以下命令安装:

yum -y install tuned

安装完成后,启动并启用tuned服务:

systemctl enable tuned --now

3. 使用tuned配置自启动

tuned服务安装后,可以通过以下命令配置自启动:

systemctl enable tuned
systemctl start tuned

4. 激活指定的配置文件

tuned软件提供了很多个调优方案,这些方案根据不同的目标调节内核参数。管理员可以激活指定的配置文件,例如激活throughput-performance配置文件:

[root@VM-4-15-centos ~]# tuned-adm profile throughput-performance

激活后,可以通过以下命令查看当前激活的配置文件:

[root@VM-4-15-centos ~]# tuned-adm active

这将显示当前激活的配置文件名称。

5. 查看可用的配置文件列表

通过以下命令可以列出所有可用的配置文件列表以及当前激活的配置文件:

[root@VM-4-15-centos ~]# tuned-adm list
配置文件名称描述
accelerator-performance基于吞吐量的性能调优,禁用了高延迟的STOP状态。
balanced通用的非特殊化调优配置文件。
desktop优化桌面使用场景。
hpc-compute优化高性能计算(HPC)计算工作负载。
intel-sst配置Intel Speed Select Base Frequency。
latency-performance以增加功耗为代价,优化确定性性能。
network-latency以增加功耗为代价,优化确定性性能,重点关注低延迟网络性能。
network-throughput优化流式网络吞吐量,通常只在旧CPU或40G+网络上需要。
optimize-serial-console优化串行控制台使用。
powersave优化低功耗。
throughput-performance广泛适用的调优,为各种常见服务器工作负载提供出色的性能。
virtual-guest优化虚拟机内部运行。
virtual-host优化运行KVM虚拟机。

6. 自定义调优方案

如果默认提供的配置文件不满足需求,管理员可以根据自己的需求自定义调优方案,并将其应用到系统中。

通过上述步骤,您可以利用tuned工具根据不同的应用场景对系统进行优化,从而提升系统的性能和响应能力。希望这些笔记能帮助您更好地使用tuned工具进行系统调优。

[root@localhost ~]# cd /usr/lib/tuned/
[root@localhost ~]# cp -r virtual-host/   rhce-test
[root@localhost ~]# cd  rhce-test
[root@localhost ~]# vim tuned.conf

#
# tuned configuration
#

[main]

summary=Custom Optimization include=throughput-performance

[sysctl]

# Start background writeback (via writeback threads) at this percentage (system # default is 10%) vm.dirty_background_ratio = 5

[cpu]

# Setting C3 state sleep mode/power savings force_latency=cstate.id:3|70

[scheduler]

# The total time the scheduler will consider a migrated process # "cache hot" and thus less likely to be re-migrated # (system default is 500000, i.e. 0.5 ms) sched_migration_cost_ns = 5000000 ~ ~