免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3169 | 回复: 5
打印 上一主题 下一主题

大家来谈谈kernel的裁减及快速启动的问题吧 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-20 11:31 |只看该作者 |倒序浏览
最近做个项目,要把kernel裁小,初步做了点配置在2.6.20上,完成编译后的大小为1.1M,之前在2.6.17上类似的配置大概0.9M
请教各位,有没有更好的建议,或者说从何处着手裁减更方便。

另外,kenrel还要能快速启动,我在这方面倒是找了点资料,包括以下几点:
添加kernel参数,避免侦测ide,如:ide0=noprobe  hda=none等,差不多能快1S
kenrel去除rtc的支持,也能快1S
去除printk功能

大家还能提供点什么建议马?
希望能通过大家的努力,把帖子升为精华

论坛徽章:
0
2 [报告]
发表于 2007-04-20 13:29 |只看该作者
原帖由 junglegq 于 2007-4-20 11:31 发表于 1楼  
最近做个项目,要把kernel裁小,初步做了点配置在2.6.20上,完成编译后的大小为1.1M,之前在2.6.17上类似的配置大概0.9M
请教各位,有没有更好的建议,或者说从何处着手裁减更方便。

另外,kenrel还要能快速 ...


以前做过这种light weight kernel的项目,主要目的是为集群系统提供高效的计算平台。
做了四个方面的事情:
1   通过config系统裁减和配置,去掉所有不需要的东西,最后的内核差不多700k;
2  从内核代码中去掉了所有内核线程,以降低“计算噪音”(当时的内核中的keventd由于被太多其他部分用到所以无法去掉);
3  改变系统的HZ,以降低调度对computing-intensive应用的影响;
4  提供特殊的内存分配接口以满足高性能网卡的需求(myrinet、infiniband等)。

最后发现对应用程序的性能改善其实并不是很大,最好的情况下也就只有5%左右的提升。不过可能是因为当时很多东西没有吃透,所以不是很理想。

论坛徽章:
0
3 [报告]
发表于 2007-04-20 14:28 |只看该作者
原帖由 puppylove 于 2007-4-20 13:29 发表于 2楼  


以前做过这种light weight kernel的项目,主要目的是为集群系统提供高效的计算平台。
做了四个方面的事情:
1   通过config系统裁减和配置,去掉所有不需要的东西,最后的内核差不多700k;
2  从内核代码 ...



能否详细解释一下,哪些内核线程能去掉呢?我刚看了一下自己的系统,好像能去掉的线程也不多。
再则,提供特殊的内存接口是否先预留一块内存给网卡,还是有其他更好的解决方案?

另外,看到有个patch,关于记录内核调用func所用的次数及耗时,全称kernel function trace,有用过的朋友请谈谈体会。好像它的主页上没有对新版kernel 的支持了

自己手里有篇文章,介绍fasten kenrel,放在附件里供参考。

Faster Linux Bootup Process.pdf

45.34 KB, 下载次数: 153

论坛徽章:
0
4 [报告]
发表于 2007-04-20 14:34 |只看该作者
原帖由 puppylove 于 2007-4-20 13:29 发表于 2楼  


以前做过这种light weight kernel的项目,主要目的是为集群系统提供高效的计算平台。
做了四个方面的事情:
1   通过config系统裁减和配置,去掉所有不需要的东西,最后的内核差不多700k;
2  从内核代码 ...



减到700k太强了…

论坛徽章:
0
5 [报告]
发表于 2007-04-20 15:58 |只看该作者

回复 #4 albcamus 的帖子

呵呵   当时用的是2.4.18内核。 可能2.6系列的内核比较难裁减小。

论坛徽章:
0
6 [报告]
发表于 2007-04-20 19:14 |只看该作者
2.6的我的是ls /boot/vmlinuz-2.6.20 -l
-rw-r--r--  1 root wheel 1293434 Apr 13 18:17 /boot/vmlinuz-2.6.20
-rw-r--r--  1 root wheel 1337576  7月 18 19:27 /boot/vmlinuz-2.6.22

大概1M多吧,,,sata支持的。。

cat /proc/version
Linux version 2.6.20 ([email]mysql@localhost.loca[/email]ldomain) (gcc version 4.0.1 20050727 (Red Hat 4.0.1-4.EL4.2)) #3 SMP Fri Apr 13 18:14:39 CST 2007

比我的小了一半了。。。
不过。。裁太小了,影响性能。。比如sata的 AHCI SATA support没选起来后sata就慢。。到不了读。1。5G每秒
Power Management support  也不能少。。要不pwmconfig就不好配出来。。。这样风扇就不能控速。。容易坏。。
出来了贴一下。。看下大小

——————————————————————————————————————————————————————
本内核部分信能
hdparm  -a0 /dev/sda 后


hdparm  -tT /dev/sda
Timing cached reads:   3100 MB in  2.00 seconds = 1549.30 MB/sec

————————————————————————————————————————————————————
sensors
k8temp-pci-00c3
Adapter: PCI adapter
temp1:       +32?°C
temp3:       +32?°C

w83627ehf-isa-0290
Adapter: ISA adapter
in0:       +1.40 V  (min =  +0.00 V, max =  +1.74 V)
in1:       +1.86 V  (min =  +1.81 V, max =  +1.15 V) ALARM
in2:       +3.28 V  (min =  +0.00 V, max =  +2.82 V) ALARM
in3:       +3.28 V  (min =  +1.87 V, max =  +2.14 V) ALARM
in4:       +1.25 V  (min =  +1.06 V, max =  +1.28 V)
in5:       +1.58 V  (min =  +0.21 V, max =  +1.61 V)
in6:       +1.61 V  (min =  +1.70 V, max =  +1.14 V) ALARM
in7:       +3.30 V  (min =  +2.05 V, max =  +3.84 V)
in8:       +3.02 V  (min =  +1.60 V, max =  +2.24 V) ALARM
in9:       +1.64 V  (min =  +0.52 V, max =  +1.28 V) ALARM
fan1:        0 RPM  (min = 21093 RPM, div = 64) ALARM
fan2:     6367 RPM  (min = 675000 RPM, div = 2) ALARM
fan3:        0 RPM  (min =    0 RPM, div = 64) ALARM
fan5:        0 RPM  (min = 168750 RPM, div = 8) ALARM
temp1:       +28?°C  (high =   -95?°C, hyst =   +34?°C)
temp2:     +36.0?°C  (high = +90.0?°C, hyst = +85.0?°C)
temp3:     +47.5?°C  (high = +90.0?°C, hyst = +85.0?°C)
——————————————————————————————————————————————
[root@undefined linux]#  smartctl -P show /dev/sda
smartctl version 5.37 [x86_64-unknown-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Drive found in smartmontools Database.  Drive identity strings:
Model Family:     Seagate Barracuda 7200.9 family
MODEL:              ST3120813AS
FIRMWARE:           2AAA
match smartmontools Drive Database entry:
MODEL REGEXP:       ^ST3(500[68]41|400[68]33|300[68]22|250[68]24|250[68]24|200827|160[28]12|120814|120[28]13|80[28]110|402111)AS?$
FIRMWARE REGEXP:    .*
MODEL FAMILY:       Seagate Barracuda 7200.9 family
ATTRIBUTE OPTIONS:  None preset; no -v options are required.

[[i] 本帖最后由 wheel 于 2007-7-18 14:01 编辑 [/i]]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP