June 7, 2011
解决Apache出现的CPU高占用率的问题
"所谓Apache出现CPU高占用率就是指Apache在一段时间内持续占用很高的CPU使用率,甚至达到CPU100%,这个时候造成网站无法访问。解决的方法就是仔细观察Apache的日志文件,查阅错误的信息。\n我个人试了一下启用了\nEnableSendfile Off\n暂时解决了,\n下面我们针对几种错误信息进行分析并给出解决的方法:\n1. Apache与WinSock v2相冲突 Apache官方提供的手册 中提到,在Windows系统下Apache2.x为了提高性能而使用了Microsoft WinSock v2 API,但是一些常见的防火墙软件会破坏他的正确性,从而使得Apache出现死循环操作造成CPU100%。\n其错误提示如下所示:\n[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.\n[error] (OS 10038) : Child 3356: Encountered …"
June 6, 2011
FreeBSD下Ports文件目录介绍
"当提到 Ports Collection 时, 第一个要说明的就是何谓 “skeleton”。 简单地说, port skeleton 是让一个程序在 FreeBSD 上简洁地编译并安装的所需文件的最小组合。 每个 port skeleton 包含:\n一个 Makefile。 Makefile 包括好几个部分, 指出应用程序是如何编译以及将被安装在系统的哪些地方。\n一个 distinfo 文件。这个文件包括这些信息: 这些文件用来对下载后的文件校验和进行检查 (使用 sha256(1)), 来确保在下载过程中文件没有被破坏。\n一个 files 目录。 这个目录包括在 FreeBSD 系统上编译和安装程序需要用到的补丁。 这些补丁基本上都是些小文件, 指出特定文件作了哪些修正。 它们都是纯文本的的格式,基本上是这样的 “删除第 10 行” 或 “将第 26 行改为这样 …”, 补丁文件也被称作 “diffs”, 他们由 diff(1)程序生成。 这个目录也包含了在编译 port 时要用到的其它文件。\n一个 pkg-descr 文件。 这是一个提供更多细节,有软件的多行描述。 …"
June 6, 2011
ifstat命令行统计网络流量
"早上在BSD区问了个关于统计网络流量的问题,我喜欢用命令行方式查看,斑竹大人指点–\u0026gt;ifstat . ^_^ 现在将方法写出来:\n下载 ifstat , http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz\nwget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz\ntar xzvf ifstat-1.1.tar.gz\ncd ifstat-1.1\n./configure\nmake\nmake install\n都是老套路,别和我说你没装gcc .\n然后 man ifstat\n-t 显示时间 格式:HH:MM:SS\n-i 指定的网卡 ,如果有多块网卡 以”,”分隔\n-T 显示所有接口的带宽.\nifstat -t -i tun0,tun1 -T Time tun0 tun1 Total\nHH:MM:SS KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out\n06:38:02 6.25 0.29 1.43 1.18 7.67 …"
June 6, 2011
配置PHP.INI监测服务器的脚本耗时
"配置php.ini中的 auto_prepend_file auto_append_file 加入自动解析页面来获取执行时间\n; Automatically add files before or after any PHP document. auto_prepend_file = monitor_prog.php auto_append_file = monitor_prog.php\n把monitor_prog.php放到包含目录下。\nmonitor_prog.php\n// print_r($_SERVER);\nif ( ! function_exists ( ‘ getmicrotime_t ‘ ) ) {\nfunction getmicrotime_t(){\nlist ( $usec , $sec ) = explode ( ” ” , microtime ());\nreturn $usec ;\n// return ((float)$usec + (float)$sec);\n} // end func\n}\n$time1 = date ( ‘ Y-m-d H:i:s ‘ );"
June 1, 2011
iostat来对linux硬盘IO性能进行检测
"近期公司安装了几台DELL PE2650和2850的服务器,统一安装的是RHLE5.132位系统,而服务器的SCSI硬盘都统一做了raid1。公司老总要求对硬盘IO作统一检测报告,在Linux下找了许多工具,发现最实用的还是iostat,这个需要先安装sysstat ,即yum -y install sysstat;公司内部的yum服务器搭建这个不是本文的重点,这里不作详细叙述。\n# iostat -x 1 10 Linux 2.6.18-92.el5xen 03/01/2010 avg-cpu: %user %nice %system %iowait %steal %idle 1.10 0.00 4.82 39.54 0.07 54.46 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 3.50 0.40 2.50 5.60 48.00 18.48 0.00 0.97 0.97 0.28 sdb 0.00 0.00 0.00 0.00 0.00 0.00 …"
June 1, 2011
Linux IO性能测试
"近来想了解一下开发环境的IO性能,分别用dd/orion/iozone/bonnie++四种工具测试了一下\n开发环境系统配置如下:\nIntel SR1625 server, 2 CPU, 32GB内存, 用主板自带卡做了raid1+0,8个7200转SATA硬盘\n操作系统是RHEL 5.3 64位\n因为物理内存是32GB,因此整个过程都选用了60GB+的数据量来测试,以避免cache的影响\n1. 首先用自带的dd命令先测一下, 块大小为8k\ndd只能提供一个大概的测试结果,而且是连续IO而不是随机IO\n读测试\ntime dd if=/dev/sda2 f=/dev/null bs=8k count=8388608\n8388608+0 records in\n8388608+0 records out\n68719476736 bytes (69 GB) copied, 516.547 seconds, 133 MB/s\nreal 8m36.926s\nuser 0m0.117s\nsys 0m55.216s\n写测试\ntime dd if=/dev/zero f=/opt/iotest …"
May 30, 2011
weebox is a dialog plugin
"使用前需包含以下jquery.js、bgiframe.js、weebox.js、wee.css文件\n基本用法举例如下: $.weeboxs.open(‘#testbox’, {title: ‘hello world’, width:400, height: 200});\n$.weeboxs.open(‘The operation failed.’,{ onopen:function(){alert(‘opened!’);}, onclose:function(){alert(‘closed!’);}, onok:function(){alert(‘ok’); $.weeboxs.close();} });\n$.weeboxs.open(‘/modules/test/testsession.php’, {contentType:’ajax’});\n$.weeboxs.open(‘hello world’);\n$.weeboxs.open(‘The operation failed.’,{type:’error’});\n$.weeboxs.open(‘The operation …"
May 30, 2011
C语言对mysql数据库的操作
"这已经是一相当老的话题。不过今天我才首次使用,把今天的一些体会写下来,也许能给一些新手带来一定的帮助,更重要的是供自己今后忘记的怎么使用而进行查阅的!\n我们言归正传\n1.头文件:\n#include\n#include\n#include “/usr/local/mysql/include/mysql/mysql.h” //这个是必需要包含的,下面对mysql的所有操作函数,都出自这里\n2.定义一个MYSQL变量:\nMYSQL mysql;\n这里MYSQL是一个用于连接MySql数据库的变量。\n在后面对mysql数据库的操作中,我们就用这个MYSQL变量作为句柄的。\n3.定义数据库参数:\nchar host[32]=”localhost”;\nchar user[32]=”username”;\nchar passwd[32]=”pwd”;\nchar dbname[32]=”testdb”;\n4.数据库操作\n1).初始化数据库:\nmysql_init(\u0026amp;mysql);\n2).连接数据库: …"
May 28, 2011
FreeBSD/Linux检测硬盘坏道 第二篇
"Linux认证:FreeBSD/Linux检测硬盘坏道,$badblocks -s //显示进度 -w //以写去检测 -v //显示执行详细情况 /dev/sda2\nLinux检测硬盘坏道\nbadblocks功能说明:检查磁盘装置中损坏的区块。\n语法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]\n补充说明:执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。\n参数:\n-b 指定磁盘的区块大小,单位为字节。\n-o 将检查的结果写入指定的输出文件。\n-s 在检查时显示进度。\n-v 执行时显示详细的信息。\n-w 在检查时,执行写入测试。\n[磁盘装置] 指定要检查的磁盘装置。\n[磁盘区块数] 指定磁盘装置的区块总数。\n[启始区块] 指定要从哪个区块开始检查。\nbadblocks 检测磁盘坏块\n1)$badblocks -s //显示进度 -v //显示执行详细情况 /dev/sda1\n2)读写方式检测 未挂载的磁盘设备或分区\n$badblocks -s //显示进度 -w //以写去检测 -v //显示执行详细情况 /dev/sda2 …"
May 28, 2011
configure: error: mcrypt.h not found. Please reinstall libmcrypt
"今日参考以前的文章安装lnmp的时候,发现这次在安装php的时候竟然提示”configure: error: mcrypt.h not found. Please reinstall libmcrypt”,意思是,没有查找到mcrytp.h,需要安装libcrytp,以前安装了n次都没有问题的,在网上找了一个解决办法.\nwget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz\ntar -zxvf libmcrypt-2.5.7.tar.gz cd libmcrypt-2.5.7 mkdir -p /usr/local/libmcrytp ./configure prefix=/usr/local/libmcrytp/ make make install\n然后再安装PHP"