Linux life and tips
  • 2010-11-04

    crontab 运行误解 - [linux]

    Tag:cron linux
    今天理解到一个cron运行机制,以前写cron的时候一直是误解的。

    */5 * * * * /root/run.sh 以前这样写是理解为每5分钟 运行一次 /root/run.sh。结果也是5分钟运行一次.

    然而根据经验与逻辑,每50分钟运行一次就是 */50 * * * * /root/run.sh,但是结果呢? 查看日之后...
  • 接到同事电话,说一台数据库服务器loadavg飙升到200-300.处理了下知道问题原因了

    环境,2cpu,16核 centos5.4 mysql-5.1.44 一机2个实例

    1,分别用top,iostat,mpstat,vmstat,sar 看了下系统的运行状态.

    top - 13:14:42 up 12:10,  2 users,  load average: ...

  • cacti也可以监控mysql的一些性能参数画出图,但是无法自定义时间或者其他条件产生报表.mycheckpoint 可以作为替代监控mysql性能的工具,并且安装使用都非常简单.图标也比cacti漂亮..

     

    mycheckpoint 文档地址:
    http://code.openark.org/forge/mycheckpoint/documentation



    需要的...

  • 2010-08-04

    gearman 把玩手记 - [linux]

    gearman 是一个消息列队服务。有3种角色

    jobserver -->传递任务(银行排队机)

    worker-->具体做事情的人(银行服务窗口里的职员)

    client-->发情请求的人(客户)

    具体干啥已经明白了.就可以开始走走流程了.

    安装gearman需要安装libevent,libevent-devel 他就靠这个事件驱动了.你不装他没法转起来啊...
  • nfs配置文件都正确,防火墙也没有,selinux也是关的.一直说Permission denied ,搞了一上午.一直没解决.

    下午到处乱找,找到个方法解决了。原因还是未知

    在服务端的/etc/fstab 加入 : 然后执行 mount -a 把这2个项挂上去.最后到客户端去挂载自己共享的项目.

    nfsd /proc/fs/nfsd nfsd auto,defaults 0 0
    sunrpc /var/lib/...
  • 今天需要监控一下mysql同步的实时性,需要监控replication的Seconds_Behind_Maste,之前误以为nagios监控端是判断差价输出的结果的第一个段来判断错误级别的。结果脚本执行成功后状态还是显示 CRITICAL。

    查找资料发现是根据插件执行后的退出状态来判断的。

    OK —退出代码 0—表示服务正常地工作。 WARNING —退出代码 1—表示服务处于警告状态。 CR...

  • 现在大多数网站都是3层,如果网站慢下来不知道是用户连接慢还是网站服务器处理请求慢.所以需要前端负载均衡和后端webserver上记录每一个个请求的处理时间,虽然有一点性能的损耗,但是对于DEBUG,tunning来说还是有一定作用的。

    可以使用nginx log_format里的$request_time这个变量来记录请求处理的时间,

    例如:

     log_format  main  '$remo...

  • 2010-05-07

    ssh tips - [linux]

    Tag:ssh
    ssh 复制本地证书到远端,改变以前scp那种先复制再重命名的模式.


    step 1:
    [root@fy ~]# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase): ...
  • 2010-05-06

    itouch折腾记 - [life]

    Tag:itouch
    于市购一ITOUCH 32G,,览众贴,遂越狱.初入,甚欢.,欲尝DIY之味,技未熟,遂恢复不能.

    再求告于众坛,终成.

    叹曰:蛮夷之技实强..,天朝山寨之玩物只得其形,而其神远矣.

     

     


  • nginx优异的性能导致技术人员对他关注很多,开发了很多第3方模块.使他越来越强大.
    我们不会coding,但是用还是可以用一下的.
    网站一般是通过脚本语言去连接和操作mysql的比如,php,python,等等.今天就越过脚本语言直接与mysql通信.

    需要的库:libdrizzle

    需要的模块是(两位中国人写的,taobao的):
    http://github.com/chaoslawful/drizzle-ng...
  • high performance mysql 2中讲,使用内存储存引擎后,如果查询的结果集很大,或者结果集中有TEXT,BLOB类型的数据将把结果集合转化成myisam引擎的临时表..

    而在其注释里写到 :

    People often confuse Memory tables with temporary tables, which are
    ephemeral tables created with CREATE TEMPORARY TA...
  • 最近看high performance mysql 2,里面对于MYSQL细节讲得比较多,纠正了我以往对于innodb锁的一些理解,实验证明一下,加深理解。

    innodb 的行锁是在有索引的情况下,没有索引的表是锁定全表的.

    表锁演示(无索引)

    Session1:

    mysql> set autocommit=0;

    mysql> select * from in...
  • 2010-03-18

    mysql 排序优化 - [mysql]

    Tag:mysql sort
    今天发现mysql错误日志里出来sort abort,于是加大sort_buffer_size ,read_buffer_size,read_rnd_buffer_size

    修改以后执行同一sql排序,结果没有太大变化。后来决定把tmpdir 设置到内存中去(tmpfs),结果速度加快比较明显。

    因为大结果集的排序如果超过了分配的内存就需要在临时目录(默认是/tmp)创建临时表,而硬盘IO比内存慢了许多倍。

    优化一个sql...
  • mysql中间键做对外透明的mysql loadblance集群还是有一定可行性的,目前有mysql proxy ,mmm ,以及amoeba

    amoeba是中国人写的所以先试用一下。过程就记录一下了。简单

    实现功能roundrobin

    环境是我单机3个实例。

    1,安装jdk
    ./jdkxxx.bin
    export JAVA_HOME=/path/to/new_jdk...
  • mysql使用myisam的时候锁表比较多,尤其有慢查询的时候,造成死锁.这时需要手动kill掉locked的process.使他释放.

    (以前我都是重起服务)..惭愧啊..

    mysql> show processlist;
    +----+------+-----------+------+---------+------+-------+------------------+
    | Id | User | Host&nbsp...

  • 2010-02-02

    nagios 折腾手记 - [linux]

    Tag:nagios

    以前听说nagios很烦,配置文件里的选项比较串,一直没有去弄。上2周花了点时间弄了下,记录之

    required package:
    gd gd-devel p.pl(perl cgi)

    server:
       1. useradd nagios 
       2. groupadd nagcmd 
       3. usermod -G nag...

  • 看网上有人说误删除了文件还可以恢复,于是测试了下。可行,记录之,像我这样粗心的人。肯定用得到
    download :
    http://code.google.com/p/ext3grep/downloads/list
    有可能需要的包(一般是操作系统已经带了)centos5.2自带
    e2fsprogs-libs
    e2fsprogs
    e2fsprogs-devel
     
    模拟环境: ...
  • 1,mysql like 中文匹配不准确,(结果集与条件不符合)

    解决方法,在有中文的字段加入binary属性 比如:

     alter table t1 change name name varchar(10) binary;

    select 查询时的条件之前加入 binnary,比如:

    select xxx from xxx where binnary xxx like "%xxx%";...
  • 2010-01-04

    php超时解决 - [linux]

    同事写一个php统计程序,打开页面发现varnish都直接报503了。后来查日志后解决

    1.看php.ini的最大执行时间,默认30秒,加大到3000s

    2.看php-fpm.conf 里的request_terminate_timeout ,发现是0,没有限制

    修改重启后,报错依旧.确定是varnish和nginx问题了.

    3.修改varnish backend 的.first_byte_tim...

  • 登录服务器必须经过新浪的SSH通道,所以每次操作机器非常麻烦,正好学习python,写了个socket 远程调用系统命令做事,没那么麻烦了,没打算让他能执行所有的命令,反正可以在action那里去加了,现在就改个文件,重启下服务。

    server.py:

    #!/usr/bin/python
    import os,sys,commands,string,socket
    addr=('0.0.0.0',8080)
    MAXCLIE...
  • 刚刚开始学习python,本来是要实现socket接受指令,然后用socket把文件传过去。自己已经用socket实现通信,感觉代码有点长,结果搜到这个模块就用这个实现了,这个模块很强。刚刚接触只能依葫芦画瓢了。

    模块介绍:(http://codespeak.net/execnet)

    execnet ad-hoc instantiates local and remote Python interpreters. Each interpreter...
  • 2010-01-02

    python doc 本地sever - [python]

    Tag:python doc
    刚刚开始学习python,发现python自带的文档每次你想看都需要import这个模块,而且在tty里看也不直观,今日在网上搜索,偶然看到python有自带的pydoc 并且可以开启一个webserver 以web方式展现python的库,模块的文档。

    root@ri0day-laptop:~# whereis pydoc #看pydoc在哪(默认环境变量中有)
    pydoc: /usr/bin/pydoc2.6 /usr/bin/pydoc /usr/share...
  • 有个情况,你需要传输一个超大目录,这个传输的过程很长,但是你不想他没日没夜的传,你想在他执行一定时间后中断他,如论他是否执行完毕。解决方案当然是有的,就是写2个脚本,一个传输文件,另外一个在sleep你指定的时间后用ps 找出这个进程KILL掉他,那么如何写在一个脚本里呢?

    trans()

    rsync -avzrP xxxx/ xxx@x.x.x.x::db/ >log.txt &

    sleep 2h...
  • 2009-12-28

    LINUX 常用进程操作 - [linux]

    Tag:ps

    计算当前进程占用的物理内存量:

    [root@localhost ~]# ps -ylC lt-varnishd --sort:rss | awk '{ SUM += $8 } END { print SUM/1024"M" }'

    按占用内存百分比排序当前进程:

    [root@localhost ~]# ps aux|sort -nk +4|tail -n 1

    按占用cpu百分比排序当前进程:...

  • 2009-12-24

    rsync incoming chmod - [linux]

    Tag:rsync chmod

    rsync客户端与服务端用户id不同,并且使用了保持本地权限选项,导致传上去文件权限为本地的,

    跑nginx的用户服务器上没有这个id与之对应的用户,所以没有权限写入传上去的目录

    man rsyncd.conf 发现有incoming chmod 和outgoing chmod 选项

    传上来的文件由于没有对应的用户所以只有id ,那就属于o类了,设置o类权限为7好啦

    [xxx]
    ...

  •                                        install munin on centos5.2 ...

  • 考虑到要集中收集监控的信息就写一个检测mysql服务可用性的小服务

    监控的脚本也就是服务的实体啦:

    cat /opt/mysqlchk

    #!/bin/bash
    ip=`/sbin/ifconfig eth0|awk /172/|awk -F":" '{print $2}'|awk '{print $1}'`
    if /data0/mysql/bin/mysqladmin -uroot -ppassword...
  • 在到达webserver之前对用户的请求做处理.

    处理多个资源域名

    sub vcl_recv {

    if (req.http.host ~ "^(rsh|res1).sina.com$") {
                    set req.http.host = "...
  • Using ramfs or tmpfs you can allocate part of the physical memory to be used as a partition. You can mount this partition and start writing and reading files like a hard disk partition. Since you’ll be reading and writing to the RAM, it will b...
  • 内核关于内存的选项都在/proc/sys/vm目录下.

    1.pdflush,用于回写内存中的脏数据到硬盘。可以通过 /proc/sys/vm/vm.dirty_background_ratio调整。

    首先查看这个值默认应该是10。

    [root@esf ~]# cat /proc/sys/vm/dirty_background_ratio
    10

    这个值是一个阀值,说明如果内存中的脏数据达...