分类: 计算机 Computer

  • Android Studio: 用KVM加速模拟

    如果是在Linux上进行开发,可以用KVM来加速Android模拟器。

    参考文档

    http://developer.android.com/tools/devices/emulator.html#accel-vm
    http://www.howtogeek.com/117635/how-to-install-kvm-and-create-virtual-machines-on-ubuntu/

    测试环境

    Ubuntu 14.04
    Android Studio 1.0

    配置过程

    1. 安装KVM

    $ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
    

    (更多…)

  • RHEL7: Bash Auto Complete

    RHEL7 中的Bash自动补全,可以补全命令中的子命令和参数。

    [root@rhel7-0 network-scripts]# yum install bash-completion 
    
  • RHEL6: Samba的简单配置

    Samba可以让Linux主机和Windows主机互相共享资源(文件、打印机)。
    下面是在RHEL6的实验过程。

    参考文档

    http://linux.vbird.org/linux_server/0370samba.php


    实验环境&实验内容

    两台虚拟机,操作系统为RHEL6.5;
    虚拟机1用作共享文件,虚拟机2尝试挂载虚拟机1共享的目录。
    虚拟机1的IP是192.168.122.50;
    虚拟机2的IP是192.168.122.60;


    安装所需软件

    [root@vserver1 ~]# yum install samba samba-client samba-common
    
    [root@vserver1 ~]# chkconfig smb on
    [root@vserver1 ~]# chkconfig nmb on
    

    (更多…)

  • RHEL和Ubuntu清理/tmp目录的机制

    某天,我在Ubuntu的/tmp目录下呕了150+行代码,第二天兴高采烈开机打算继续往下写时,发现…文件消失了!
    为了让这段代码死得明明白白,稍微看了下RHEL和Ubuntu是怎样自动清理/tmp目录的。

    注: 除非文件真的一点都不重要,否则别放在/tmp目录下啊!

    RHEL6

    在RHEL6中,系统每天会自动检查/tmp目录下的文件,如果超过30天没有Access/Write/Modify(atime,ctime,mtime,取三个时间的最大值,如果这个最大值超过30天则删除)。
    这是由一个Daily Cron Job来完成的,脚本在 /etc/cron.daily/tmpwatch 。

    [root@host ~]# cat /etc/cron.daily/tmpwatch 
    #! /bin/sh
    flags=-umc
    /usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
    	-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
    	-X '/tmp/hsperfdata_*' 10d /tmp
    /usr/sbin/tmpwatch "$flags" 30d /var/tmp
    for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
        if [ -d "$d" ]; then
    	/usr/sbin/tmpwatch "$flags" -f 30d "$d"
        fi
    done
    

    脚本通过调用一个tmpwatch的程序来执行清理工作。
    (更多…)

  • TCP Wrapper笔记

    这是TCP Wrapper的笔记。

    (更多…)

  • RHEL6: LAMP安装与配置

    参考文档

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

    实验环境&内容

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

  • 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页的脏数据要写到磁盘里。

    (更多…)