#Linux的结构
用户空间:专门给应用程序使用
内核空间:只有内核程序可以访问
#什么是linux内核
Linux系统的核心就是内核,内核控制计算机上所有硬件软件并进行管理(系统内存管理,应用程序管理,硬件设备管理,文件系统管理)
#操作系统和内核
内核是操作系统最基本的东西,两者是包含关系
操作系统:
管理计算机资源的系统软件,包含内核,系统所必须的各种组件(函数库,编译器,调试工具,文件编辑器,交互式shell界面),还提供安全和隐私服务。
内核kernel:
管理系统资源,提供对软件(进程,文件系统,内存等对象的操作和权限控制)层面的抽象;对硬件访问的抽象。内核是操作系统最核心的部分,作为连接各种硬件的桥梁,有kernel中间层,仅需关系与内核的交互。
#Linux内核优化
1. 虚拟内存相关:
- vm.swappiness:调整系统交换空间使用的程度,默认值为60,可以降低到10左右。
- vm.dirty_ratio 和 vm.dirty_background_ratio:控制脏页(尚未写回磁盘的页)占用内存的比例,建议根据实际情况调整。
2. 网络相关:
- net.ipv4.tcp_syncookies:开启 SYN Cookies 防止 SYN Flood 攻击。
- net.ipv4.ip_local_port_range:限制本地端口范围,以避免端口耗尽问题。
- net.core.somaxconn:设置 TCP 连接队列的最大长度。
3. 文件系统相关:
- fs.file-max:调整系统支持打开的文件数量上限。
- fs.nr_open:调整进程允许打开文件数量的上限(与 file-max 有一定关系)。
- kernel.pid_max:控制 pid 号码的最大数值。
4. 其它:
- kernel.sysrq:开启 SysRq 功能,能够在系统出现崩溃时进行调试和救援。
- kernel.shmmax 和 kernel.shmall:调整共享内存的大小和数量。