文件系统orphan inode机制分析

之前做技术研究的时候搞文件系统元数据镜像时处理过orphan inode的问题,而现在恰好有同事在做lsof时发现了一些的特殊的文件,lsof可以看到进程在使用,同时ls具体文件时却又看不到: suse:~ # lsof /var | grep deleted nscd 2831 root 8u REG 8,5 217016 42883 /var/run/nscd/db4Dqbpq (deleted) nscd 2831 roo...

内核bug导致Java进程CPU升高

内核SLES10SP3的老版本内核2.6.16.60-0.54.5也是使用了很长时间了,虽然之前也有一些bug,不过都是组内单个patch自己编译内核搞定问题的,虽然内核用的是SLES,但补丁却不是同步的,没办法,业务模式不同,卖出去的服务器又不能像windows一样,开个后门远程打补丁,只能慢慢积攒影响一般的补丁,最后搞一次大的,把内核...

Oprofile:CPU性能分析工具指南

在平台升级中经常碰到自测时性能指标没有问题,而平台转到产品业务部门匹配测试时就出了问题.如果是功能异常的问题,一般还是很好处理的,但如果碰到系统的性能问题,如CPU升高,内存使用超标,就比较不好搞了,老虎吞天,没有目标,一个版本几十万行代码一行行看,绝对能累死,尤其是内核组. 幸好开源界的风气好,提供了各种工具...

ubuntu编译linux内核

为什么要自己编译Linux内核呢?不要误会,没有任何geek的目的,我只是为了获取具有调试信息的vmlinux文件,方便在oprofile工具上使用,用来跟着程序的CPU耗费在哪个函数环节. 首先通过apt-get获取内核代码,当然你可以直接从kernel.org上Git获取代码. sudo apt-get install linux-source 然后是一些编译需要的包 sudo apt-get...

项目组技术交流经验谈

技术型公司里面员工是很重要的,尤其是技术专家,但人才总是在不断流动中的,新鲜血液也在不断加入到项目组内.如果你是通用的Linux C编程或网络编程让应届生上手也比较快一点,但处于Linux kernel等一些专业性比较强的项目组而言,刚来的人都是菜鸟了.通常意义的做法是老员工帮带新员工,另外一种方法就是对新员工进行技术培训...

纪念 Google Reader

今天上班时看到一条新闻,说是google reader服务将在7月份停止更新,自己晃了一下脑袋,还以为看花眼了,点击一看,确是如此. 都快忘记什么时候使用google reader了,大概是大一的时候,然后逐渐的沉迷在这个信息的苦海,乐疲忘返,每天晚上打开它都是几百条的信息摆在眼前,一条条看完,有时候不知不觉中到了午夜1点,痛苦么?其...

shell输入密码之具体代码实现

shell输入密码之具体代码实现 在做shell脚本开发时会涉及到密码输入,就像系统密码输入一下,在终端不能将密码显示出来,直接不显示或者显示为*号. 一,不显示密码 1.直接通过read -s不回显密码. oen@oen ~/code/shell/passwd $ bash read-s.sh Username: oenhan.com Password: ------------------- Username is:oenhan.c...

简易git入门手册

最近学习了一些git,在一些简易命令上和SVN是类似的,这点还是不错的,有利于初学者快速上手.主要记一下git的入门的基本命令,实现机制以及和SVN的优劣的口水仗就不提了. 安装了git sudo apt-get install git 配置git信息 git config -global user.name "oenhan"; git config -global user.email "mail@oenhan.com" ...

在shell中嵌入二进制文件

将二进制文件打包到shell脚本 之前因为要用支付宝更新浏览器插件,直接下载了一个aliedit.sh脚本,直接执行脚本,便搞定了插件的安装,正要称赞阿里的开发人员人性化了,转念一下,一个shell脚本就能搞定的安装,岂不是可以直接cat脚本就可得知支付宝监控工具的代码啦. 直接cat结果如下: main() { SetStrings Mkdir A...

正则表达式快速入门

正则表达式,就是用某种模式去匹配一类字符串的一个公式,用shell也有一段时间了,自诩对正则表达式也略微了解,却被正则表示式之道的题目难倒了,把文章的精华记录下来,工作中作为参考. 正则表达式有元字符和普通字符组成的,最终要理解元字符的意义. 1.元字符的意义 元字符 描述 . 匹配...