Linux内核是一个开源的操作系统核心,负责管理计算机硬件资源和提供基本的系统服务。它是所有基于Linux的操作系统(如Ubuntu、Debian、Fedora等)的基础,也是许多其他Unix-like系统的基础。Linux内核由Linus Torvalds于1991年首次发布,自那时以来已经成为了全球最流行的开源项目之一。
Linux内核的主要特点如下:
- 开源:Linux内核是开源的,这意味着任何人都可以查看、修改和分发源代码。这使得Linux社区能够不断改进和优化内核,以满足不断变化的硬件需求和性能标准。
- 可定制性:Linux内核具有极高的可定制性,用户可以根据自己的需求对内核进行定制。这包括选择不同的内核版本、安装或移除特定的设备驱动程序、配置网络接口等。
- 高性能:Linux内核针对多种硬件平台进行了优化,以确保在各种设备上都能提供高性能。此外,内核还支持多种调度策略和其他优化技术,以进一步提高系统性能。
- 模块化设计:Linux内核采用了模块化设计,使得各个组件可以独立地开发、测试和集成。这使得内核的开发和维护变得更加高效和灵活。
- 稳定性:Linux内核以其稳定性而闻名,能够在各种恶劣环境下稳定运行。这得益于内核的精心设计和严格的质量控制流程。
- 跨平台兼容性:Linux内核支持多种硬件平台,包括x86、ARM、MIPS等。此外,Linux还能运行在各种不同的操作系统上,如Windows、macOS等。
Linux内核的开发和维护需要大量的专业知识和技能。内核开发者通常需要熟悉C语言、计算机体系结构、操作系统原理等领域的知识。此外,他们还需要与其他开发者、测试人员和用户紧密合作,以确保内核的稳定性和兼容性。
linux如何修改内核:
vim /etc/sysctl.conf
修改完成后保存,执行sysctl -p生效
I/O相关参数设置
设置hugepage属性。通过如下命令,关闭透明大页。
echo never >
/sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
修改完成后,请执行如下命令:reboot,使参数生效。
逻辑内存管理参数
逻辑内存管理参数为max_process_memory,主要功能是可用内存的最大峰值。
最终可用的内存为:
max_process_memory – shared memory ( 包括shared_buffers ) – cstore_buffers
可用内存参数的主要两个参数为shared_buffers及cstore_buffers。
以下是一些与Linux内核相关的参数设置,这些设置可以帮助优化系统性能和稳定性:
- vm.swappiness: 调整swap分区的使用策略,关闭swap分区适用于Kubernetes环境。
- vm.max_map_count: 设置为ElasticSearch所需的值,否则启动会报错。
- file-max: 控制进程的最大并发连接数。
- tcp_tw_reuse: 允许将TIME-WAIT状态的套接字重新用于新的TCP连接,提高服务器性能。
- tcp_keepalive_time: 控制keepalive消息发送的频率。
- tcp_fin_timeout: 设置服务器主动关闭连接时的最大时间。
- tcp_max_tw_buckets: 限制TIME_WAIT套接字数量的最大值。
- tcp_max_syn_backlog: 控制SYN请求队列的最大长度。
- ip_local_port_range: 定义本地端口的取值范围。
- net.ipv4.tcp_rmem and net.ipv4.tcp_wmem: 设置TCP接收和发送缓存的大小。
- netdev_max_backlog: 设置网卡接收数据包时的队列最大长度。
- rmem_default, wmem_default, rmem_max, wmem_max: 设置内核套接字接收和发送缓存区的大小。
- tcp_syncookies: 解决TCP的SYN攻击问题,与性能无关。