日志信息 故障现象描述 与硬盘关系 scsi1: ERROR on channel 0, id 7, lun 0, CDB: Read (10) 00 73 fc 62 bf 00 00 80 00 Info fld=0x73fc6326, Current sdi: sense key Medium Error Additional sense: Unrecovered read error SMART规范定义“Medium Error”错误是一种不可恢复的错误,可能由于介质的缺陷或记录的数据错误。该错误有别于“Hardware Error”。 出现Medium Error的主要原因是硬盘坏,或者硬盘的数据无法读写。 (1)硬盘扇区坏 或(2)硬盘与磁盘控制器连接信号质量不稳定,导致数据出现异常 mptbase: ioc1: IOCStatus=804b LogInfo=31080000 Originator={PL}, Code={SATA NCQ Fail All Commands After […]
READ MORE »Linux CPU利用率计算原理及内核实现
我们经常使用top命令来查看CPU利用率,如 root@ubuntu:~# top top – 09:16:29 up 6 min, 4 users, load average: 0.01, 0.22, 0.17 Tasks: 149 total, 1 running, 147 sleeping, 0 stopped, 1 zombie Cpu(s): 2.8%us, 6.7%sy, 0.2%ni, 89.9%id, 0.3%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 508000k total, 404092k used, 103908k free, 47764k buffers Swap: 522236k total, 0k used, 522236k free, 184992k cached PID […]
READ MORE »x86服务器MCE(Machine Check Exception)问题

MCE现象 Intel在Pentium 4、Xenon和P6系列处理器中实现了机器检查(Machinecheck)架构,提供能够检测和报告硬件(机器)的错误机制,如系统总线错误、ECC错误、奇偶校验错误、缓存错误、TLB错误等。它包括一直MSR(Model-Specific Registers)寄存器,用来设置机器检查和额外的bank MSR记录错误。 当机器检查到不可纠正的machine-check错误时,就触发一个machine-check异常。machine-check架构不允许在出现MCE后处理器重启,但MCE处理程序可以从MSR寄存器收集相关信息。 CPU 7: Machine Check Exception: 5 Bank 0: b200004010000400 RIP !INEXACT! 10:<ffffffff8010f16e> {mwait_idle+0x5e/0x90} TSC 1952dbeebcc8 Kernel panic: Machine check Reconfiguring memory bank information…. This may take a while…. done waiting: 3 cpus not responding Warning: Non-empty request queue I/O requests in flight at dump time CPU 7: Machine […]
READ MORE »Linux文本终端/字符界面屏保取消
在我们日常使用Linux过程中,经常遇到使用屏幕终端一段时间后,显示器关闭,屏幕上没有任何显示。一段时间后,屏幕就会关闭,无任何显示。 若此时系统死机或僵死,而且屏幕上有输出。当遇到屏幕保护时,则无法看到任何信息。此时我们就 需要关闭屏幕保护。 取消文本终端的屏幕保护命令是: #setterm –blank 0 –powersave off –powerdown 0 若我们想再次开启文本终端屏保,使用以下参数: #setterm –blank 1 –powersave on –powerdown 5 注意: 以上命令必须在屏幕终端上执行才能生效,通过SSH无法更改屏幕终端属性。 命令可以以非root身份执行。
READ MORE »Linux内核地址空间划分

x86内核地址空间划分 在x86(32位CPU)系统中,Linux内核地址空间可以划分为1G内核空间,3G用户空间。 在x86中,Linux内核地址空间也可以划分为4G/4G。 x86_64内核地址空间划分 根据内核版本不同,可支持512G/512G、1T/1T、2T/2T的划分。 per process virtual address space limit of 512 Gigabytes top of userspace stack located at address 0x0000007fffffffff PAGE_OFFSET = 0xffff800000000000 start of the kernel = 0xffffffff800000000 global RAM per system 2^64-PAGE_OFFSET-sizeof(kernel) = 128 Terabytes – 2 Gigabytes no need of any […]
READ MORE »Linux读写CPU MSR寄存器命令rdmsr/wrmsr
在Linux内核源码中提供了读写CPU MSR寄存器模块,使可以在用户空间直接读写MSR寄存器。 开源社区提供msr寄存器读写工具msrtools,其中有两个命令,rdmsr/wrmsr。要使rdmsr/wrmsr命令真正可以读写msr寄存器,系统中必须有msr模块,或将msr模块编译进内核,下面是从内核配置选项中选取的内容。 Processor type and features —> <M> /dev/cpu/*/msr – Model-specific register support 实例: root@ubuntu:~/linux-2.6.32.36-0.5# rdmsr 0x1a0 0 root@ubuntu:~/linux-2.6.32.36-0.5# rdmsr和wrmsr命令格式如下: root@ubuntu:~# rdmsr Usage: rdmsr [options] regno –help -h Print this help –version -V Print current version –hexadecimal -x Hexadecimal output (lower case) –capital-hex -X Hexadecimal output (upper case) –decimal -d Signed decimal output –unsigned […]
READ MORE »RHEL内核源码升级
本文以RHEL5内核源码为例,介绍内核的自动编译和手动编译。 非RHEL内核编译 对于非RHEL内核,编译内核只需四个步骤:
READ MORE »Linux中如何读写硬盘上指定物理扇区
读指定物理扇区: dd if=<源设备> of=<输出设备或文件> skip=<指定扇区值> bs=512 count=1 写指定物理扇区: dd if=<输入设备或文件> of=<输出设备> seek=<指定扇区值> bs=512 count=1
READ MORE »奥巴马在韦克菲尔德高中开学时的演讲
嗨,大家好!你们今天过得怎么样?我现在和弗吉尼亚州阿林顿郡韦克菲尔德高中的学生们在一起,全国各地也有从幼儿园到高三的众多学生们通过电视关注这里,我很高兴你们能共同分享这一时刻。 我知道,对你们中的许多人来说,今天是开学的第一天,你们中的有一些刚刚进入幼儿园或升上初高中,对你们来说,这是在新学校的第一天,因此,假如你们感到有些紧张,那也是很正常的。我想也会有许多毕业班的学生们正自信满满地准备最后一年的冲刺。不过,我想无论你有多大、在读哪个年级,许多人都打心底里希望现在还在放暑假,以及今天不用那么早起床。
READ MORE »书籍推荐 -《梁山政治》
毫无疑问,梁山最大的管理难题是干部问题。梁山干部多,而且来自不同的山头,各个小有名气,武艺在身。干部多,人多嘴杂,互相攀比,狼多肉少;山头多,小群体活动频繁,意见不容易统一;名气大,自我意识强,不好领导;有武艺,一旦不满意就容易闹出事情。管理好梁山,必须要把干部问题处理好。梁山上很多干部的成长都蕴藏着玄机。
READ MORE »