• 针对mysql写入的优化设置

    post by Holmesian / 2011-8-31 9:58 Wednesday

    innodb_buffer_pool_size
    如果用Innodb,那么这是一个重要变量。相对于MyISAM来说,Innodb对于buffer size更敏感。MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉在爬了。 Innodb的缓冲池会缓存数据和索引,所以不需要给系统的缓存留空间,如果只用Innodb,可以把这个值设为内存的...

    阅读全文>>

  • FreeBSD在ESXi的虚拟环境下php-cgi性能极差

    post by Holmesian / 2011-5-7 10:36 Saturday

    五一的时候yycrazy本来准备对服务器上的应用进行一次分离操作,但是由于极差的网络性能铩羽而归。自从五一过后服务器一直处于极度不稳定状态:系统不定期并且毫无征兆的所有phpcgi进程突然卡死导致CPU负载飙升并导致全站所有动态内容访问很慢且最终全线奔溃。

    一开始找了很多资料尝试了很多方法都没有明显的好转,因为没有任何一定的触发条件,并且所有等级的日志和监控都无法记录任何蛛丝马迹,所以一时很难做出准确判断。无意之中在网上看到有TX反应Discuz X 1.5在nginx+php-cgi环境下使用manyou应用的时候很容易导致php-cgi进程高负载运作大量消耗CPU资源,于是尝试将开启的Discuz X1.5的manyou应用关闭,发现问题有很大的缓解,本来以为已经解决了,但是第二天凌晨时再度出现毫无征兆的所有phpcgi进程突然卡死让我无奈地之后从更底层的角度去考录解决的办法。

    经过漫长的排查与测试最终发现问题出在/boot/loader.conf中的设置上,一开始安装FreeBSD的时候顺手copy了之前的一份优化过的loader.conf配置的一部分,里面有一个参数 kern.ipc.nmbclusters="0"  ,本来只是将nmbclusters设置成无限制,但是问题就出在只copy了一部分:因为kern.ipc.nmbclusters被设置成 0 的情況下,net.inet.tcp.reass.maxsegments 参数也跟着一同被设置成 0 了。net.inet.tcp.reass.maxsegments被设置成0之后在有大量 TCP out-of-order 封包的网络情况下,FreeBSD的性能将会变得极差而且整个系统会非常的脆弱,在出现问题的时候用netstat查看连接信息可以发现packets discarded due to memory problems的计数相当之多而 TCP out-of-order的计数永远为0。

    阅读全文>>

  • negative sbsize for uid问题

    post by Holmesian / 2011-3-16 8:01 Wednesday

    早上发现一台FreeBSD8的服务器不能访问了,于是起来找原因

    发现message日志如下

    阅读全文>>

  • Mysql缓解Copying to tmp table on disk状态

    post by Holmesian / 2011-3-14 18:26 Monday

    FreeBSD8.0+Nginx+FastCG+Mysql5.0的环境,本来跑Dedecms+Discuz!+UChome一切运转良好,后来升级到Discuz X1.5,由于合并之后Discuz X 1.5中有某个单表超过1G,偶尔会出现论坛不能访问的情况。

    经检查不能访问时Nginx状态良好,只是reading数和writing数飙升,php-cgi进程大量提示sbwait状态,mysql负载居高不下,在mysql中运行show proceslist;得到回显如下

    阅读全文>>

  • FreeBSD用Automysqlbackup备份mysql数据库

    post by Holmesian / 2010-12-6 14:29 Monday

    Automysqlbackup是一个非常不错的轻量级Mysql自动备份脚本,你可以在http://sourceforge.net/projects/automysqlbackup/files/AutoMySQLBackup/下载到最新的版本,经过简单的配置之后添加到系统的周期执行列表中去即可简单实现mysql自动备份的功能。但是这么一个简洁而强大的工具在FreeBSD下使用的时候会提示如下的错误...

    阅读全文>>

  • FreeBSD下测试硬盘传输速度 diskinfo

    post by Holmesian / 2010-12-4 15:28 Saturday

    很好用的工具 diskinfo -tv da0

    da0是磁盘名

     

     
    1. da0
    2.         512             # sectorsize
    3.         5368709120      # mediasize in bytes (5.0G)
    4.         10485760        # mediasize in sectors
    5.         652             # Cylinders according to firmware.
    6.         255             # Heads according to firmware.
    7.         63              # Sectors according to firmware.
    8.  
    9. Seek times:
    10.         Full stroke:      250 iter in   1.570215 sec =    6.281 msec
    11.         Half stroke:      250 iter in   1.853518 sec =    7.414 msec
    12.         Quarter stroke:   500 iter in   5.152832 sec =   10.306 msec
    13.         Short forward:  diskinfo: read error or disk too small for test.: No such file or directory

     

     

     
    1.  #diskinfo -tv da0
    2. da0
    3.         512             # sectorsize
    4.         26843545600     # mediasize in bytes (25G)
    5.         52428800        # mediasize in sectors
    6.         3263            # Cylinders according to firmware.
    7.         255             # Heads according to firmware.
    8.         63              # Sectors according to firmware.
    9. Seek times:
    10.         Full stroke:      250 iter in   3.402582 sec =   13.610 msec
    11.         Half stroke:      250 iter in   3.133905 sec =   12.536 msec
    12.         Quarter stroke:   500 iter in   5.943346 sec =   11.887 msec
    13.         Short forward:    400 iter in   3.128173 sec =    7.820 msec
    14.         Short backward:   400 iter in   2.822509 sec =    7.056 msec
    15.         Seq outer:       2048 iter in   1.325654 sec =    0.647 msec
    16.         Seq inner:       2048 iter in   0.905938 sec =    0.442 msec
    17. Transfer rates:
    18.         outside:       102400 kbytes in   1.252566 sec =    81752 kbytes/sec
    19.         middle:        102400 kbytes in   0.949189 sec =   107882 kbytes/sec
    20.         inside:        102400 kbytes in   0.993947 sec =   103024 kbytes/sec

     

     

  • FreeBSD查看当前外部网络连接情况

    post by Holmesian / 2010-11-17 16:18 Wednesday

    手机上一直收到来自服务器的负载过高报警短信,上服务器检查后发现被同一内网IP的机器DoS了,找出问题所在之后在ipf中添加上了禁止DoS主机的源IP,整个系统的负载瞬间就下来了,php-cgi进程也都空闲了。同一网段的IP还不知道是谁么,机房里就那么几台服务器,不是被入侵的话那就是有人搞鬼了…… 不知道哪位TX这么有闲情做这么些无聊之事,如果相当有闲情的话不妨联系一下我。

    顺便记录一下FreeBSD下常用的统计当前系统网络连接状态的一些命令:

    阅读全文>>

  • FreeBSD下IP Filter NAT机理分析

    post by Holmesian / 2010-11-5 20:04 Friday

     摘 要:本文依托cnfug开发的Floppy Firewall为平台,以嗅探器抓包分析结合相应的路由转发规分析IPFilter对数据报进行转发和NAT的机理,最终针对实际案例的需求提出解决方案。

    关键词:NAT FreeBSD 嗅探器 TCP/IP

    阅读全文>>