Linux-2.6.31内核优化指南

Linux 2.6.31内核优化指南作者:Ken WuEmail: ken.wug@介绍本文档是一篇关于Linux Kernel 2.6.31的最简优化指南。

作者旨在编译一份性能最佳且适合普通Application/Server开发用的内核。

(非生产环境)本文提及的内核调优,主要是通过选择最佳编译选项,删除无用驱动,减少内核尺寸,关闭部分安全特性等方式来进行的。

优化后的效果,主要体现在OS启动时间,启动后的内存占用以及应用程序运行性能。

由于作者水平有限,如果描述错误,还请不吝指教。

运行环境虚拟机Virtualbox 3.1.4CPU Core 2 Duo P9500 2.53G双核开启vt-x, APIC磁盘虚拟10G的SATA磁盘内存分了1G物理内存网卡虚拟AMD PCNet32 100M其他USB,串口,显卡,声卡全关作者是在虚拟机中编译的内核,如果你与作者的运行环境不同,则本文档中的部分描述可能会与你的实际情况有一定出入。

不过,相信大部分用户在看到选项释义时,能做出适合自己的选择。

说明下列选项中,通过"// "注释的行,代表金国步写的内核选项简介中未提及的选项释义。

通过红色"<==="注释的行,代表内核默认开启,本文档推荐关闭的选项,释义部分会给出关闭的理由。

参考资料金国步写的内核选项简介Linux Kernel DatabaseLinuxsir BBS优化前后性能对比项目优化前优化后内核尺寸 4.1M 1.6M启动时间(含dhcp+默认init service)22s14s启动后的内存占用25M22MAPP SPEC测试成绩待测待测General setup --->[ ] Prompt for development and/or incomplete code/drivers <===显示尚在开发中或尚未完成的代码和驱动.我不是内核或驱动开发人员。

() Local version - append to kernel release[ ] Automatically append version information to the version string Kernel compression mode (Bzip2) ---> <===对比默认的Gzip,Bzip2拥有更高的压缩比[*] Support for paging of anonymous memory (swap)[*] System V IPC[*] BSD Process Accounting[ ] BSD Process Accounting version 3 file format[ ] Export task/process statistics through netlink (EXPERIMENTAL) <===体验类选项一律关[ ] Auditing support <===给SELinux提供支持。

我的使用场景主要是开发应用程序,不需要那么高的安全性,另外安全总是以牺牲性能为代价RCU Subsystem ---> // 非对称读写锁系统是一种新的kernel锁机制,适用于读多写少环境RCU Implementation (Classic RCU) ---> <===选择标准的RCU系统,tree-base是给拥有大规模CPU集群的SMP系统用的< > Kernel .config support(18) Kernel log buffer size (16 => 64KB, 17 => 128KB)[] Control Group support ---><=== cgroups支持,文档资料,cgroups主要作用是给进程分组,并可以动态调控进程组的CPU占用率。

比如A进程分到apple组,给予20%CPU占用率,E进程分easy组,给予50%CPU占用率,最高100%。

我目前没有此类应用场景,用到时会选择将其编译进去。

[] Kernel->user space relay support (formerly relayfs) <===在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口,我目前没有此类应用场景-*- Namespaces support[] UTS namespace <===我没有已安装的应用程序要用到UTS ns[] IPC namespace <===我没有已安装的应用程序要用到IPC ns[] Initial RAM filesystem and RAM disk (initramfs/initrd) support <===用于在真正内核装载前,做一些操作(俗称两阶段启动),比如加载module,mount一些非root分区,提供灾难恢复shell环境等,资料,我是期望直接从kernel image直接启动,所以没选它[*] Optimize for size[ ] Configure standard kernel features (for small systems) ---> -*- Load all symbols for debugging/ksymoops[ ] Do an extra kallsyms pass <===除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项Performance Counters --->[*] Kernel Performance Counters // CPU性能监听器,包括CPU 同一时间执行指令数,cache miss数,分支预测失败次数(Branch misprediction)。

调优其他程序时或许会用到,比如JVM[ ] Strip assembler-generated symbols during link[ ] Disable heap randomizationChoose SLAB allocator (SLUB (Unqueued Allocator)) --->[ ] Profiling support (EXPERIMENTAL) <===我不是内核开发人员,不需要profile内核[] Activate markers <===一种运行时状态分析诊断工具,类似instrumentation,资料,我用不到[ ] Kprobes <===我不是内核开发人员,不需要调试内核GCOV-based kernel profiling --->[ ] Enable gcov-based kernel profiling[*] Enable loadable module support ---> //我很少使用dynamic module loading,所以,下面的选项只留一个unloading即可(默认)--- Enable loadable module support[ ] Forced module loading[*] Module unloading[ ] Module versioning support[ ] Source checksum for all modules-*- Enable the block layer --->--- Enable the block layer[*] Support for large (2TB+) block devices and files //大硬盘支持,SATA设备如果不选,会发生kernel panic,具体原因未知[ ] Block layer SG support v4 <===支持通用scsi块设备第4版,我用的是SATA[ ] Block layer data integrity supportIO Schedulers ---> // IO调度器支持,不同程序可以会选用不同的调度策略,这里我们不要动他<*> Anticipatory I/O scheduler<*> Deadline I/O scheduler<*> CFQ I/O schedulerDefault I/O scheduler (CFQ) --->Processor type and features --->[*] Tickless System (Dynamic Ticks) // CPU节能,动态时间片意思是当CPU处于空闲时,降低内核定时器的轮询频率[*] High Resolution Timer Support //我有的时候要测试Real Time JVM,希望内核能支持这种高响应速度的内核定时器,一般用户可关闭[*] Symmetric multi-processing support[ ] Support sparse irq numbering <===如果你想支持大量CPU,又想使用较低的内核内存占用,请启用它。

我只有单块CPU[*] Enable MPS table//让多核/多CPU系统支持ACPI[ ] Support for big SMP systems with more than 8 CPUs[ ] Support for extended (non-PC) x86 platforms <===我是X86平台,不需要再支持其他平台[*] Single-depth WCHAN output //跟proc相关的最好不要关[ ] Paravirtualized guest support --->--- Paravirtualized guest support[ ] MemtestProcessor family (Core 2/newer Xeon) ---> <===这里请选择对应的CPU,我是core 2 duo[ ] Generic x86 support <===通用x86支持,如果你的CPU能够在上述"Processor family"中找到就别选了[*] HPET Timer Support(4) Maximum number of CPUs <===我的CPU是双核,算上超线程HT最多虚拟4颗逻辑CPU,所以我选4,默认是8[*] SMT (Hyperthreading) scheduler support[*] Multi-core scheduler supportPreemption Model (Voluntary Kernel Preemption (Server)) ---> <===这里我选择了Server,它最贴近我的使用场景[*] Reroute for broken boot IRQs //防止同时收到多个boot IRQ(中断)时,系统混乱[*] Machine Check Exception[ ] Use legacy machine check code (will go away)[*] Intel MCE features[ ] AMD MCE features <===我是intel CPU[ ] Support for old Pentium 5 / WinChip machine checks< > Machine check injector support< > Toshiba Laptop support< > Dell laptop support[ ] Enable X86 board specific fixups for reboot <===修正某些旧x86主板的重起bug,这种主板基本绝种了<*> /dev/cpu/microcode - microcode support[*] Intel microcode patch loading support[ ] AMD microcode patch loading support <===我是intel CPU<*> /dev/cpu/*/msr - Model-specific register support<*> /dev/cpu/*/cpuid - CPU information support< > /sys/kernel/debug/x86/cpu/* - CPU Debug supportHigh Memory Support (4GB) --->(4096) Low address space to protect from user allocation[*] Allocate 3rd-level pagetables from highmem<===在内存很多(大于4G)的机器上将用户空间的页表放到高位内存区,以节约宝贵的低端内存,我只虚拟了1G[ ] Check for low memory corruption <===低位内存脏数据检查,默认是每60秒检查一次。

合集下载

Linux-2.6.31 内核移植

Linux-2.6.31 内核移植

Linux-2.6.31内核移植实现功能:一>支持小页/大页NandFlash—64M/256M二>支持yaffs2文件系统三>支持320*240LCD四>支持DM9000网卡五>支持UDA1341声卡六>支持RTC七>完善了触摸屏驱动八>支持常用USB设备九>支持常用USB摄像头十>支持CMOS摄像头驱动移植十一>LCD背光移植手册:linux2.6.31移植V1.5.pdf补丁文件:linux-2.6.31_TX2440A.rar编译:#make distclean#cp TX2440A_config_256M_W35.config#make zImage编译完后,会在arch/arm/boot下生成zImage内核镜像文件[其它说明:linux-2.6.31_TX2440A20110106已经添加了3.5寸、4.3寸、7寸屏的驱动内核源码的根目录下有3个配置文件:TX2440A_config_256M_W35—>3.5寸屏的配置文件TX2440A_config_256M_W43—>4.3寸屏的配置文件TX2440A_config_256M_Q70—>7.0寸屏的配置文件编译内核之前,只需要LOAD相应的配置文件就可以生成对应该屏的内核。

图形化配置:#make menuconfig<—进入图形化配置界面在配置菜单中选择这一项:"Load an Alternate Configuration File",输入2440的默认配置文件:TX2440A_config_256M_W35,然后选择OK。

配置完后,回到主菜单,选择这一项"Save anAlternate Configuration File",输入要保存的配置文件名称:.config(默认)或自己取名:TX2440A_config,退出,编译内核]内核移植步骤:一、准备移植二、支持NandFlash启动时输出:S3C24XX NAND Driver,(c)2004Simtec Electronics0x000000000000-0x000000100000:"boot"0x000000120000-0x000000520000:"kernel"0x000000520000-0x000010000000:"yaffs2"三、支持yaffs2文件系统启动时(成功挂载文件系统)输出:yaffs:dev is32505858name is"mtdblock2"yaffs:passed flags""yaffs:Attempting MTD mount on31.2,"mtdblock2"yaffs:auto selecting yaffs2yaffs_read_super:isCheckpointed0VFS:Mounted root(yaffs filesystem)on device31:2.Freeing init memory:196K四、LCD驱动的移植启动时输出:Console:switching to colour frame buffer device40x30fb0:s3c2410fb frame buffer devic e五、DM9000驱动的移植启动时输出:dm9000Ethernet Driver,V1.31Now use the default MAC address:08:90:90:90:90:90eth0:dm9000e at c881c000,c8820004IRQ62MAC:08:90:90:90:90:90系统启动后,可能会出现这个错误:ifconfig:SIOCSIFFLAGS:Cannot assign requested address原因是MAC地址没有设置或没有设置对,在文件系统的启动脚本中加上:ifconfig eth0downifconfig eth0hw ether XX:XX:XX:XX:XX:XX<—MAC地址,随便设ifconfig eth0up一般问题可以解决,如果还提示有错,再改一下MAC地址。

Red Hat Enterprise Linux 6 效能微調指南说明书

Red Hat Enterprise Linux 6 效能微調指南说明书

Red Hat Enterprise Linux 6效能微調指南優化 Red Hat Enterprise Linux 6 的子系統處理能力版 4.0Last Updated: 2017-10-12Red Hat Enterprise Linux 6 效能微調指南優化 Red Hat Enterprise Linux 6 的子系統處理能力版 4.0Red Hat 主題專員編輯者Don DomingoLaura Bailey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 內容目錄章 1. 總覽1.1. 讀者1.2. 水平擴充能力1.2.1. 平行運算1.3. 分散式系統1.3.1. 通訊1.3.2. 儲存環境1.3.3. 聚集網路章2. RED HAT ENTERPRISE LINUX 6 效能提升2.1. 支援 64 位元2.2. 票證盤旋鎖2.3. 動態清單結構2.4. 無計時 KERNEL 2.5. 控制群組2.6. 改進儲存與檔案系統章 3. 監控和分析系統效能3.1. PROC 檔案系統3.2. GNOME 與 KDE 系統監控程式3.3. 內建的命令列監控工具3.4. TUNED 與 KTUNE3.5. 應用程式設定檔工具3.5.1. SystemTap3.5.2. OProfile3.5.3. Valgrind3.5.4. Perf3.6. RED HAT ENTERPRISE MRG 章4. CPU 拓樸執行續插斷4.1. CPU 拓樸4.1.1. CPU 與 NUMA 拓樸4.1.2. 微調 CPU 效能4.1.2.1. 使用 taskset 設定 CPU 關聯4.1.2.2. 使用 numactl 控制 NUMA 政策4.1.3. numastat 4.1.4. NUMA 關聯管理 daemon (numad )4.1.4.1. numad 的好處4.1.4.2. 操作模式4.1.4.2.1. 使用 numad 作為服務4.1.4.2.2. 以執行檔方式執行 numad 4.2. CPU 排程4.2.1. 即時排程政策4.2.2. 正常的排程政策4.2.3. 選擇政策4.3. 微調插斷與 IRQ4.4. RHEL 6 中,NUMA 的加強功能4.4.1. 優化空機系統與可擴充能力4.4.1.1. 感知拓樸的加強功能445556781010101111111215151516171818181919202121212121212224242627272828282929303030313232內容目錄1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1.2. 多處理器同步的加強功能4.4.2. 優化虛擬功能章5. 記憶體5.1. 巨型轉譯後備緩衝區5.2. 巨型分頁與通透式巨型分頁5.3. 使用 VALGRIND 側寫記憶體使用量5.3.1. 使用 memcheck 側寫記憶體使用量5.3.2. 以 Cachegrind 側寫快取使用量5.3.3. 使用 Massif 側寫堆積與堆疊空間5.4. 微調處理能力5.5. 微調虛擬記憶體章6. 輸入/輸出6.1. 功能6.2. 分析6.3. 工具6.4. 配置6.4.1. 完全公平佇列(CFQ )6.4.2. 期限 I/O 排程器6.4.3. Noop 章7. 檔案系統7.1. 檔案系統微調考量7.1.1. 格式化選項7.1.2. 掛載選項7.1.3. 檔案系統維護7.1.4. 應用程式考量7.2. 檔案系統效能的設定檔7.3. 檔案系統7.3.1. ext4 檔案系統7.3.2. XFS 檔案系統7.3.2.1. XFS 的基本微調7.3.2.2. XFS 進階微調7.4. 叢集7.4.1. 全域檔案系統 2章 8. 網路8.1. 網路效能提升8.1.1. 接收封包操控(Receive Packet Steering ,RPS )8.1.2. 接收流量操控(Receive Flow Steering ,RFS )8.1.3. TCP 精簡串流的 getsockopt 支援8.1.4. 支援通透式代理8.2. 優化網路設定8.2.1. Socket 接收緩衝區大小8.3. 封包接收總覽8.3.1. CPU/快取關聯8.4. 解決常見的佇列/FRAME 遺失問題8.4.1. NIC 硬體緩衝區8.4.2. socket 佇列8.5. MULTICAST 考量附錄 A. 修訂記錄323234343435353637384043434344474849505252525253545454555556565858606060606061616263636364646566效能微調指南2內容目錄3效能微調指南章 1. 總覽《效能微調指南》乃配置與優化 Red Hat Enterprise Linux(Red Hat 企業版 Linux,以下簡稱「RHEL」)的全方位參考文件。

linux系统内核参数优化-linux快速入门教程

linux系统内核参数优化-linux快速入门教程

linux系统内核参数优化-linux快速⼊门教程内核的 shmall 和 shmmax 参数SHMMAX= 配置了最⼤的内存segment的⼤⼩ ------>这个设置的⽐SGA_MAX_SIZE⼤⽐较好。

SHMMIN= 最⼩的内存segment的⼤⼩SHMMNI= 整个系统的内存segment的总个数SHMSEG= 每个进程可以使⽤的内存segment的最⼤个数配置信号灯( semphore )的参数:SEMMSL= 每个semphore set⾥⾯的semphore数量 -----> 这个设置⼤于你的process的个数吧,否则你不得不分多个semphore set,好像有process+n之说,我忘了n是⼏了。

SEMMNI= 整个系统的semphore set总数SEMMNS=整个系统的semphore总数shmall 是全部允许使⽤的共享内存⼤⼩,shmmax 是单个段允许使⽤的⼤⼩。

这两个可以设置为内存的 90%。

例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的⼤⼩为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。

修改 /etc/sysctl.confkernel.shmmax=15461882265kernel.shmall=3774873kernel.msgmax=65535kernel.msgmnb=65535执⾏ sudo sysctl -p可以使⽤ ipcs -l 看结果。

ipcs -u 可以看到实际使⽤的情况========================================================================linux 内存管理⼀、前⾔本⽂档针对OOP8⽣产环境,具体优化策略需要根据实际情况进⾏调整;本⽂档将在以下⼏个⽅⾯来阐述如何针对RedHat Enterprise Linux 进⾏性能优化。

RedHat5 内核升级指南

RedHat5 内核升级指南

RedHat5.3 升级内核到2.6.33 版本错误:insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists编译2.6.31内核后重启出现insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists解决方法:1,解压initrd文件[root@bogon ~]# cp /boot/initrd-2.6.30.4.img /tmp[root@bogon ~]# cd /tmp/[root@bogon tmp]# lsinitrd-2.6.30.4.img[root@bogon tmp]# mkdir newinitrd[root@bogon tmp]# cd newinitrd/[root@bogon newinitrd]# zcat ../initrd-2.6.30.4.img |cpio -i11537 blocks释放之后看到如下内容[root@bogon newinitrd]# lsbin dev etc init lib proc sbin sys sysroot2,ok,下边就是编辑init,删掉其中重复的四行中的两行echo "Loading dm-region-hash.ko module"insmod /lib/dm-region-hash.koecho "Loading dm-region-hash.ko module"insmod /lib/dm-region-hash.ko3,重新打包initrd[root@bogon newinitrd]# find .|cpio -c -o > ../initrd11538 blocks[root@bogon newinitrd]# cd ..[root@bogon tmp]# gzip -9 < initrd > initrd.img[root@bogon tmp]# lsinitrd-2.6.30.4.img initrd initrd.img newinitrd好了,initrd.img就是重新打包的initrd了,然后把initrd.img拷贝到/boot,更改grub.conf里边的initrd-2.6.30.4.img为initrd.img就可以了,这样“insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists”就不会有了其实将init文件的第二行“setquiet”去掉,你就知道initrd文件到底在做什么了本文来自CSDN博客,转载请标明出处:/jinxl560/archive/2009/09/17/4563716.aspx。

如何优化 Linux 内核参数

如何优化 Linux 内核参数

如何优化 Linux 内核参数随着计算机技术的不断发展,更多的人开始使用 Linux 操作系统。

作为一个开源的操作系统, Linux 在保障安全性、稳定性和可靠性方面表现出色。

除此之外, Linux 操作系统也非常灵活,用户可以根据自己的需求和喜好对其进行定制和优化。

其中,内核参数的优化尤为重要,因为它能直接影响到系统的性能和稳定性。

那么,如何优化 Linux 内核参数呢?一、理解内核参数的含义和作用内核参数是一组指定操作系统内部参数的开关,通过改变这些参数可以改善系统的性能和稳定性。

内核参数有许多种,它们控制着各种功能的行为和特性,如网络协议、文件系统、内存管理、I/O 等方面。

对于不同的应用场景,其内核参数的优化方向也不同。

比如,对于高负载的 web 服务器,应优化网络协议参数和内存管理参数;而对于 I/O 密集型应用,应优化磁盘和文件系统相关参数。

二、查看和修改内核参数在 Linux 操作系统中,用户可以通过 /proc 系统文件夹和 sysctl命令查看和修改内核参数。

具体方法如下:1. 查看内核参数:使用 cat /proc/sys/[文件夹路径]/[参数名] 命令即可。

其中, [文件夹路径] 和 [参数名] 根据所需参数而不同。

举例来说,如果要查看 TCP 连接超时时间,可以使用 cat/proc/sys/net/ipv4/tcp_keepalive_time 命令。

输出结果为系统当前的TCP 连接超时时间。

类似地,如果要查看系统的文件描述符限制,可以使用 cat /proc/sys/fs/file-max 命令。

2. 修改内核参数:使用 sysctl -w [参数名]=[新值] 命令即可。

其中, [参数名] 和 [新值] 由用户自行指定。

举例来说,如果要将 TCP 连接超时时间改为 180 秒,可以使用sysctl -w net.ipv4.tcp_keepalive_time=180 命令。

Linux2.6下内核调试技术的改进与研究

Linux2.6下内核调试技术的改进与研究
合 . 法 轻易 的将 内核 代码 放 在 调试 程 序 中执 行 和 无 跟 踪 。 因而在 编 写 驱动 程 序之 前 . 们 首 先编 译 并 我
安 装 自己的新 内核 . 是 为 了在 内核 代 码 中加 入 以 这
收 稿 日期: 0 5 0 — 9 20— 80 基 金 项 目: 安 部 金 盾 工 程 资 助 项 目 (1 A 2W0 3 公 JG B 3 1 )
Ab ta t Ac o dn h iu d l c a im n e ied e ’ lme t. hsp p ra ay e e k re e sr c : cr igt te Ln xmo ue me h ns a dd vc dv rsee ns ti a e lBst e l - o n h n d b gp be i ed vc r e ’ e eo me tpo e s n d rsac e e k r e e u c n lg o gd , a - u r lm n t e ied v rsd v lp n rc s,a ee rh st en l b gt h oo yt mu lyme o h i h d e h n w i ,rp ssa mp o e ou o b u mo alc t nma a e n d ac s ntek r e. hl p o oe i rv dslt n a o t e n i me w l ai , n g me ta ce si e 1 o o n h n Ke r s Ln x26 De u e h oo y K o d ywo d : iu ., b g tc n lg , ig
YANG o Ma ,DAIZib n - i
( stt o lc o i T cn lg,h L fr ai n ier g nvri , hnzo 5 0 4C ia I tue f et nc eh o y teP AI om t nE g ei i sy Z e ghu4 0 0 hn ) ni E r o n o n nU e t

linux-2[1].6.31-探秘Linux SysRq魔法键

echo 8 > /proc/sysrq-trigger
记住,在触发 sysrq 命令后将日志级别返回到正常状态
有问题的时候向谁咨询 ~~~~~~~~~~~~~~~~~~~
我会尽快解答关于注册系统的问题。 - Crutcher
5
致谢 ~~~
Mydraal <vulpyne@> 编写 Adam Sulmicki <adam@> 进行了更新 Jeremy M. Dolan <jmd@> 2001/01/28 10:15:59 进行了更新 Crutcher Dunnavant <crutcher+kernel@> 添加了新的信息
创建 sysrq_key_op 后,调用内核函数 register_sysrq_key(int key, struct sysrq_key_op *op_p),该函数会将'op_p'所指的操作注册到表中键值'key'处,如果表中的对应位置为空的 话。模块卸载时,必须调用 unregister_sysrq_key(int key, struct sysrq_key_op *op_p),该函数 会移除键值'key'中的'op_p'指向的操作结构,如果操作结构注册在对应项中的话。这是为了 防止对应项在你注册后被覆盖。
t'E'rm 和 k'I'll 用于一些进程脱离你的控制而你无法将它们杀死,而它们会生成其它进 程的场合。
"'J'ust thaw it"用于因为 FIFREEZE ioctl 冻结一个(可能是 root)文件系统而导致系统 没有反应的场合。
有时候使用 SysRq 后似乎卡住了,这时该怎么做 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Linux系统优化配置及安全设置

Linux系统优化配置及安全设置系统参数配置:修改/etc/profile文件,加入:ulimit -u 10240ulimit -n 4096ulimit -d unlimitedulimit -m unlimitedulimit -s unlimitedulimit -t unlimitedulimit -v unlimited修改/etc/rc.d/rc.local,加入:echo ‘131072′ > /proc/sys/fs/file-maxecho ‘131072′ > /proc/sys/fs/inode-max(1G内存值修改成:65535 2G内存值修改成:131072 4G内存值修改成:262144)修改/etc/sysctl.conf文件,加入:net.core.rmem_default = 16777216net.core.rmem_max = 16777216net.core.wmem_default = 16777216net.core.wmem_max = 16777216net.ipv4.tcp_timestamps = 0net.ipv4.tcp_sack =1net.ipv4.tcp_window_scaling = 1dev_max_backlog=3000#Modify i-node#sys.fs.file-max= 65535#sys.fs.inode-max= 65535#Set System Memory#vm.bdflush="30 500 0 0 500 3000 60 20 0"#vm.kswapd="1024 32 64"#Disable HackAttack!net.ipv4.conf.eth0.accept_source_route=0net.ipv4.conf.lo.accept_source_route=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.all.accept_source_route=0net.ipv4.conf.lo.accept_redirects=0net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.eth0.accept_redirects=0net.ipv4.conf.default.accept_redirects=0net.ipv4.conf.lo.secure_redirects=0net.ipv4.conf.all.secure_redirects=0net.ipv4.conf.eth0.secure_redirects=0net.ipv4.conf.default.secure_redirects=0net.ipv4.conf.eth0.send_redirects=0net.ipv4.conf.lo.send_redirects=0net.ipv4.conf.default.send_redirects=0net.ipv4.conf.all.send_redirects=0net.ipv4.tcp_syncookies=1net.ipv4.icmp_echo_ignore_broadcasts=1net.ipv4.icmp_ignore_bogus_error_responses=1#Web Serversnet.ipv4.tcp_tw_reuse=1net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_fin_timeout=30net.ipv4.tcp_keepalive_time=1800net.ipv4.tcp_keepalive_probes = 30net.ipv4.tcp_keepalive_intvl = 3net.ipv4.core.wmem_max=16777216net.ipv4.core.rmem_max=16777216net.ipv4.tcp_rmem="4096 87380 8388608"net.ipv4.tcp.wmem="4096 87380 8388608"net.ipv4.tcp_max_syn_backlog=8192net.ipv4.tcp_retries2 = 5net.ipv4.ip_local_port_range = 1024 65000net.ipv4.tcp_mem = 78643200 104857600 157286400net.ipv4.tcp_max_tw_buckets = 50000修改/etc/security/limits.conf* soft nofile 265535* hard nofile 265535防火墙安全:iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT也有人写作iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT--limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改防止各种端口扫描iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPTPing洪水攻击(Ping of Death)iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT。

定制linux内核(linux2.6.32)教学提纲

定制l i n u x内核(l i n u x2.6.32)定制 Linux 内核(linux-2.6.32)Linux 内核看似佷庞大,其实初学者以及致力于应用开发的用户,不必学习之初就一头钻进浩如烟海的内核代码中问剑;但熟练配置内核的一些常用选项,并编译出来下载到开发板中运行试用,是你迈向 Linux 系统顶峰的必行之路。

一、平台:操作系统: ubuntu-9.04交叉编译器:arm-linux-gcc-4.4.3.tar.gz配置内核:linux-2.6.32.2-mini2440-20100921.tar.gz二、使用缺省配置文件配置和编译内核:执行以下命令来使用缺省配置文件 config_t35# cp config_mini2440_t35 .config然后执行“make menuconfig”出现配置内核界面:2.1 配置 CPU 平台选项在主菜单里面,选择 System Type,按回车进入可以看到系统大部分使用了标注了 S3C2410 的选项,这是因为 S3C2410 和S3C2440的很多寄存器地址等地址和设置是完全相同的。

如果您要选择板级选项,使用上下方向控制键一直找到 S3C2440 机器平台选项,可以进入 S3C2400 Machines 子菜单可以看到里面有很多常见的使用 S3C2440 的目标板平台选项,在此选“FriendlyARM Mini2440 development board”,如图它们分别对应于 arch/arm/mach-s3c2440/mach-* 开头的文件 , 在此对应于mach-mini2440.c。

另外,在这个文件中,还会用到一个机器码 MACH_TYPE,该机器码的定义文件为 arch/arm/tools/mach-types,我们开发板的机器码为 1999,它还对应于 vivi 源代码中 include/platform/smdk2440.h 文件的 MACH_TYPE2.2 配置各个尺寸的 LCD 驱动以及背光控制支持在主菜单里面,选择 Device Drivers,按回车进入,并找到如图选项,按回车进入:找到如图选项,再按回车进入出现类似如图界面,并找到如图选项,选中如图 Backlight(背光控制)再选中 LCD select , 按回车进入 , 如图 , 可以看到我们加载的默认配置config_mini2440_t35 在此选择统宝3.5” LCD(3.5 inch 240x320 Toppoly LCD),你还可以根据需要改为其他型号的 LCD选择完毕,一直按照下方的提示返回到 Device Drivers 配置菜单。

Linux内核参数优化

Linux内核参数优化1.调整内核启动参数:在引导过程中,可以使用GRUB或LILO等引导加载器来设置内核启动参数。

通过修改/etc/default/grub文件(对于使用GRUB的情况),或修改/etc/lilo.conf文件(对于使用LILO的情况),可以设置内核启动参数。

常见的内核启动参数包括init=/bin/bash(在系统启动时使用bash作为init进程)和max_loop=256(增加文件系统挂载的最大数量)。

2.调整内存管理参数:修改/etc/sysctl.conf文件,可以调整与内存管理相关的内核参数。

例如,可以增加vm.swappiness=10来减少交换空间的使用,提高系统性能。

3.调整文件系统参数:修改/etc/fstab文件,可以设置文件系统的挂载选项。

使用noatime选项可以减少磁盘I/O操作,提高系统性能。

4.调整网络参数:修改/etc/sysctl.conf文件,可以调整与网络相关的内核参数。

例如,可以增加net.ipv4.tcp_tw_reuse=1和net.ipv4.tcp_fin_timeout=30来优化TCP连接。

5.启用硬件加速:根据硬件配置,启用硬件加速可以显著提高系统性能。

例如,对于使用Intel或AMD处理器的系统,可以启用CPU硬件虚拟化支持。

6.关闭不必要的内核模块和服务:禁用不需要的内核模块和服务可以减少系统的资源占用,提高性能。

使用工具如lsmod和systemctl可以查看已加载的内核模块和服务状态。

7.更新内核版本:保持内核版本最新是提高系统性能和安全性的重要步骤。

使用包管理器如apt、yum或dnf可以更新内核和其他系统组件。

8.配置SELinux和AppArmor:SELinux和AppArmor是Linux的强制访问控制机制,可以提供更高的系统安全性。

根据需要配置SELinux或AppArmor的策略,并调整相关的内核参数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档