背景
最近处理了很多类型的问题,都是系统级的问题。
这些问题涉及的面包括Linux各个版本的管理(Suse Ubuntu ...),Linux内核,Glibc,gdb以及各种Linux性能工具。
个人精力确实有限,难免有时顾此失彼。今天整理一下思路,目标是为了做到高效产出。
Linux 各个版本的管理
比如Suse,这是我很头疼的事情了。主要遇到了2个事情。
第一,Suse 11 SP1装个glibc-debuginfo没有对应的供应源(有两个源suse_register失败)。
第二,Suse 11 SP1 内核版本2.6.32.12-0.7,我没有找到对应该内核版本的bug说明。
因此,对于长期跑性能内核进程kswapd0高,所有应用进程15秒未调度的问
题,
需要去建立一个提问沟通的渠道。(红帽有,Suse不清楚)
Linux 内核
对于实际做产品解决系统级问题,我主要是去了解 进程管理 /调度,内存管理,中断处理的相关内容。
这一点上,没有出现很头疼的事情。
Glibc 调试
其实在Ubuntu下,只需要两个命令就OK。但是suse下,zypper 需要对应的供应源,
目前我也还不清楚怎么样才能使得那个 POOL和UPDATE源添加成功。
各种Linux性能工具
各种Linux性能工具都有尝试。
主要使用pidstat,vmstat,iostat,netstat,ping,netperf,iptraf等工具来检测系统整体的运行情况。
开发主要使用gdb,gprof,valgrind结合objcopy,readelf,objdump等工具。
问题
实际上,以上这几个方面,都限于能使用,遇到问题去百度,google,stackoverflow。
但实际上,这并不是一种高效的生产方式,因为每一项都不够专业。
目标--理想情况
1.Linux 系统管理
熟练对各个Linux发行版本的管理;及时对版本打补丁;遇到问题能够立即获得Linux发行版本供应商提供的技术支持
2. Linux 内核
培养团队中Linux内核的专家,熟知各个内核版本的bug及规避措施。
出现内核级问题时,能够快速定位,给出解决方案。
3. Linux 系统架构
熟悉硬件原理,熟悉算法,熟悉服务器开发,能够估算系统性能情况,合理搭配软硬件资源。
4. 各种应用系统的实现及debug
各种web应用系统,各种信息系统。根据公司发展方向而定。
目前现状,展望未来
目前来说,第一点,我很业余,这个需要专门制定一个计划来解决。
第二点,虽然对内核有所了解,但是对于各个版本的情况也是一无所知,这个也需要跟踪起来,形成输出。
第三点,第四点目前没有太大的问题。