• RHEL6: LAMP安装与配置

    参考文档

    鸟哥的Linux私房菜-WWW伺服器 http://linux.vbird.org/linux_server/0360apache.php

    实验环境&内容

    系统 Red Hat Enterprise Linux Server release 6.5
    如果能成功安装并运行wordpress就说明搭建成功了。
    (更多…)

  • 红星系统(RedStar OS)安装方法

    1. 下载安装光盘;
    原链接: http://www.openingupnorthkorea.com/downloads-2
    我已经传到百度网盘,可以用下面链接下载:
    http://pan.baidu.com/s/1nt9iqAP
    提取密码:uf5b

    2. 虚拟机要选择32位架构(x86);

    3. 插入boot.iso,启动。

    4. 进到蓝色安装界面,将光盘换成rss3_32_key_gui_20131212.iso

    5. 序列号随便填,不填也行~
    redstar0
    (更多…)

  • Kernel学习笔记

    这是有关Kernel的学习笔记,也就是说会很乱……
    (更多…)

  • RHEL6: udev修改block设备的GROUP

    通过修改udev的rules文件,可以修改设备的owner和group。
    值得注意的是,因为/lib/udev/rules.d/50-udev-default.rules会把block设备的group改为disk.
    所以要改block设备的group的话,rules文件需要大于50小于99.

    可以新建/etc/udev/rules.d/99-persistent-localdisk.rules这个文件,加入以下规则。

    KERNEL=="vda", MODE="640" , GROUP="feichashao"
    
  • dirty_ratio与dirty_background_ratio的区别

    我是搬运工,搬运Better Linux Disk Caching & Performance with vm.dirty_ratio & vm.dirty_background_ratio这篇博客。
    本人实验环境:Red Hat Enterprise Linux Server release 6.5 (Santiago)

    参考文档

    http://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/


    有关Cache

    文件缓存是提升性能的重要手段。毋庸置疑,读缓存(Read caching)在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据),而写缓存(Write caching)则相对复杂。Linux内核将写磁盘的操作分解成了,先写缓存,每隔一段时间再异步地将缓存写入磁盘。这提升了IO读写的速度,但存在一定风险。数据没有及时写入磁盘,所以存在数据丢失的风险。

    同样,也存在cache被写爆的情况。还可能出现一次性往磁盘写入过多数据,以致使系统卡顿。之所以卡顿,是因为系统认为,缓存太大用异步的方式来不及把它们都写进磁盘,于是切换到同步的方式写入。(异步,即写入的同时进程能正常运行;同步,即写完之前其他进程不能工作)。

    好消息是,你可以根据实际情况,对写缓存进行配置。
    可以看一下这些参数:

    [root@host ~]# sysctl -a | grep dirty
    vm.dirty_background_ratio = 10
    vm.dirty_background_bytes = 0
    vm.dirty_ratio = 20
    vm.dirty_bytes = 0
    vm.dirty_writeback_centisecs = 500
    vm.dirty_expire_centisecs = 3000
    

    vm.dirty_background_ratio 是内存可以填充“脏数据”的百分比。这些“脏数据”在稍后是会写入磁盘的,pdflush/flush/kdmflush这些后台进程会稍后清理脏数据。举一个例子,我有32G内存,那么有3.2G的内存可以待着内存里,超过3.2G的话就会有后来进程来清理它。

    vm.dirty_ratio 是绝对的脏数据限制,内存里的脏数据百分比不能超过这个值。如果脏数据超过这个数量,新的IO请求将会被阻挡,直到脏数据被写进磁盘。这是造成IO卡顿的重要原因,但这也是保证内存中不会存在过量脏数据的保护机制。

    vm.dirty_expire_centisecs 指定脏数据能存活的时间。在这里它的值是30秒。当 pdflush/flush/kdmflush 进行起来时,它会检查是否有数据超过这个时限,如果有则会把它异步地写到磁盘中。毕竟数据在内存里待太久也会有丢失风险。

    vm.dirty_writeback_centisecs 指定多长时间 pdflush/flush/kdmflush 这些进程会起来一次。

    可以通过下面方式看内存中有多少脏数据:

    [root@host ~]# cat /proc/vmstat | egrep "dirty|writeback"
    nr_dirty 69
    nr_writeback 0
    nr_writeback_temp 0
    

    这说明了,我有69页的脏数据要写到磁盘里。

    (更多…)

  • RHEL6: 安装并启用Kdump

    参考文档

    1. The kdump Crash Recovery Service https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-kdump.html
    2. 深入探索 Kdump,第 1 部分:带你走进 Kdump 的世界 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/
    3. 深入探索 Kdump,第 2 部分: Kdump 图形化配置工具 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump2/
    4. 深入探索 Kdump,第 3 部分: Kdump 原理探秘 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump3/
    5. 深入探索 Kdump,第 4 部分: kdump 的亲密战友 crash http://www.ibm.com/developerworks/cn/linux/l-cn-kdump4/

    Kdump、vmcore是什么?

    Kdump是一套内核崩溃转储机制。当遇到Kernel Panic的时候,它能将当前内核内存转储出来,转储出来的内存文件叫vmcore.

    简单地理解,系统在启动的时候,除了用于正常工作的生产内核,还会启动一个捕获内核(也就是“备胎”)。在生产内核正常运行的时候,捕获内核就安安静静地坐着不干活;当生产内核Panic,捕获内核就会出来,帮生产内核收尸,这条尸就是vmcore。
    (更多…)

  • RHEL6: 升级Kernel

    a. 最好不要自行编译内核。直接下载官方的rpm包进行升级即可;
    b. 下面是从2.6.32-431升级到2.6.32-504的步骤;

    1. 备份重要数据;
    2. 下载kernel-2.6.32-504.el6.x86_64.rpm 和 kernel-firmware-2.6.32-504.el6.noarch.rpm ;
    3. 升级kernel-firmware;

    [root@r6s0 tmp]# rpm -Uvh kernel-firmware-2.6.32-504.el6.noarch.rpm 
    

    4. 安装kernel;

    [root@r6s0 tmp]# rpm -ivh kernel-2.6.32-504.el6.x86_64.rpm
    

    5. 检查grub.conf,启动时应以新内核启动;

    kernel /vmlinuz-2.6.32-504.el6.x86_64
    
  • RHEL6: PAM

    PAM可用于各种认证、授权。
    下面做两个简单的实验,看看pam_cracklib和pam_tally2的简单用法。

    参考文档

    1. Linux-PAM page http://www.linux-pam.org/
    2. Linux可插拔认证模块的基本概念与架构 http://www.infoq.com/cn/articles/wjl-linux-pluggable-authentication-module
    3. Linux可插拔认证模块(PAM)的配置文件、工作原理与流程 http://www.infoq.com/cn/articles/linux-pam-one
    (更多…)

  • 13 – 读取传感器:数字摄像头

    读取摄像头是高潮,运气好的话几行代码一调就出来,不幸的话,整一个多月发现摄像头原来是坏的orz…

    时序关系

    帧。 帧是一幅完整的图像。以我们所用的数字摄像头为例(型号我忘了),默认设置下1秒有30帧。

    场。 一帧包含两个场,奇数场和偶数场。奇数场传送奇数行数据,偶数场传送偶数行数据。如果一帧(一副完整图片)有480行,那么奇数场和偶数场会各有240行,奇数场传第1,3,5….行,传完后到偶数场传2,4,6….行。奇数场和偶数场传送的是同一幅图像的不同行,对提取道路信息来说,只使用奇数场/偶数场的数据就足够了。每一场的开始,会出现一个场中断。

    行。 如果一幅图像是640*480,那么一行就有640个像素点。 每一行的开始,会出现一个行中断。
    (更多…)