闲言碎语

    • 联络方式:

    Nc 的妙用

    用nc命令快速清空memcache

    e.g 

       memcache的端口是11211

    echo "flush_all" | nc 192.168.1.60 11211

    新年快乐

    给所有的朋友们拜年啦!

    祝大家新年快乐!虎虎生威!

    2010.jpg

    修改系统最大文件句柄数
    # vi /etc/sysctl.conf
    加入一行 fs.file-max = 1491124, 然后在命令行中输入: sysctl -p, 使其生效
    #cat /proc/sys/fs/file-max 查看生效结果
    修改系统open files参数
    # vi /etc/security/limits.conf
    加入一行 *                hard    nofile          204800
    # vi /root/.bashrc
    为了让设置永久生效、修改.bashrc文件、加入一行 ulimit -HSn 204800
    #lsof -p 进程ID

    注意:修改完以后如果要让应用服务生效,必须重启应用服务。

    checkpoint小议

    一:什么是checkpoint?
    checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件。

    二:什么时候发生checkpoint incomplete

    1.日志文件过小,频繁的切换;

    2.日志组太少,不能满足正常事务量的需求;

    3.日志文件所在的磁盘I/O存在瓶颈,导致读写缓慢,影响数据库的正常运行;

    4.由于数据文件的磁盘I/O存在瓶颈,DBWR写出过于缓慢;

    5.由于事务量具大,DBWR负荷过高,不勘重负.

    三:对应解决办法

    1.适当增加日志文件大小

    2.使用更快的磁盘储存日志文件,如,高转速磁盘,磁盘的结构方式采用RAID10

    3.改善磁盘I/O性能

    4.使用多个DBWR进程或者使用异步I/O等


    --END--

    nginx性能优化

    操作系统:CentOS 5.3
     
    nginx的安装就不详细介绍了,请大家移步到我以前写的二篇文章.

    Ngin+php 搭建高性能web服务器

    搭建nginx + python + django +memcached+ mysql +fastcgi 环境

    1.编译安装
    ./configure --with-poll_module --with-http_ssl_module --with-http_gzip_static_module --with-http_perl_module --with-md5=/usr/include --with-md5-asm --with-sha1=/usr/include --with-sha1-asm
    make
    make install

    2.制作SSL证书
    生成CA证书
    openssl req -days 3650 -nodes -new -x509 -keyout ca.key -out ca.pem -config OpenSSL.cnf

    生成自签名ssl证书
    openssl req -days 3650 -nodes -new -keyout cert.key -out cert.pem -config OpenSSL.cnf

    对证书进行签名
    openssl ca -days 3650 -out cert.pem -in cert.pem -extensions server -config OpenSSL.cnf

    3.配置优化
           修改nginx.conf, 工作进程10个,使用epoll事件模型,并发连接使用默认的1024个,启用gzip动态和静态压缩。

    worker_processes 10;

    events {
      use epoll;
      worker_connections 1024;
    }

    http {
        gzip  on;
        gzip_static on;
     
        gzip_comp_level     9;
        gzip_min_length     1k;
        gzip_proxied        any;
        gzip_types          text/plain text/xml application/xml application/xml+rss;
        #gzip_disable        "MSIE [1-6] \.";
        #gzip_vary           on;
    }


    复制cert.key和cert.pem到conf目录,去掉HTTPS server下面的注释,启用SSL。

    4.启用php
    下载安装spawn-fcgi,建立/tmp/php-fcgi.sock的连接,并添加nginx配置。

    location ~ \.php$ {
        root           html;
        fastcgi_pass   unix:/tmp/php-fcgi.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }


    下载安装APC、eAccelerator为php加速。

    建立缓存目录
    mkdir /var/tmp/eaccelerator

    eAccelerator配置

    [eAccelerator]
    zend_extension_ts = "/usr/lib/php5/ext/eAccelerator.so"
    eaccelerator.shm_size = "16"
    eaccelerator.cache_dir = "/var/tmp/eaccelerator"
    eaccelerator.enable = "1"
    eaccelerator.optimizer = "1"
    eaccelerator.check_mtime = "1"
    eaccelerator.debug = "0"
    eaccelerator.filter = ""
    eaccelerator.shm_max = "0"
    eaccelerator.shm_ttl = "0"
    eaccelerator.shm_prune_period = "0"
    eaccelerator.shm_only = "0"
    eaccelerator.compress = "1"
    eaccelerator.compress_level = "9"


    5.启动nginx
    运行命令
    sudo spawn-fcgi -f /usr/bin/php-cgi -s /tmp/php-fcgi.sock -F 2 -u nobody
    sudo /usr/local/nginx/sbin/nginx

    为了方便管理,使用如下脚本,保存为nginx,放到/etc/init.d目录

    #! /bin/sh
    #
    # nginx daemon script
    #

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DAEMON=/usr/local/nginx/sbin/nginx
    NAME=nginx
    PIDFILE=/usr/local/nginx/logs/$NAME.pid
    PHPSOCKET=/tmp/php-fcgi.sock
    PHPPIDFILE=/tmp/run/php-fcgi.pid
    PHPSPAWN="spawn-fcgi -f /usr/bin/php-cgi -s $PHPSOCKET -P $PHPPIDFILE -F 2 -u nobody"

    test -x $DAEMON || exit 0

    set -e

    case "$1" in
      start)
    echo "Starting $NAME."
    $DAEMON
    $PHPSPAWN
    ;;

      stop)
    echo "Stopping $NAME."
    $DAEMON -s stop
    kill `cat $PHPPIDFILE`
    rm -f $PHPSOCKET $PHPPIDFILE
    ;;

      restart)
    echo "Restarting $NAME."
    $DAEMON -s reopen
    kill `cat $PHPPIDFILE`
    rm -f $PHPSOCKET $PHPPIDFILE
    $PHPSPAWN
    ;;

      reload)
        if [ ! -f $PIDFILE ]; then
          echo "nginx not started."
          exit 1
        fi
        echo "Reloading $NAME."
        $DAEMON -s reload
        ;;

      test)
        $DAEMON -t
        ;;

      *)
    N=/etc/init.d/$NAME
    echo "Usage: $N start|stop|restart|reload|test" >&2
    exit 1
    ;;
    esac

    exit 0

    最近评论

    • ghds: 贵博客很不错,想长期购买文字广告链接,如有兴趣请加QQ 10 43202787
    • Nova: 有些脚本中的 '不是`,总体还好,学习了。
    • learsu: 今天终于找到这个架构的出处了。您把nginx放到前面做负载均衡为什么不把haproxy放到前面做负载
    • Nova: 不错啊,PPT都放上了?速度够快啊。
    • 张可: 太好了,正在找这个呢,想不到这么快。

    个人介绍

    Xu
    Evangelist
    Oracle DBA / Blogger
    Life@Beijing
    Work@恩世教育
    详细介绍...

    按月归档

    Close