Entries Tagged as ''

编译varnish时的错误

源代码编译varnish的时候
cd varnish-1.1.2/
./autogen.sh
./configure –enable-debugging-symbols –enable-developer-warnings –enable-dependency-tracking
make

这时候出错:

“varnishhist.c:35:20: error: curses.h: No such file or directory“

然后安装ncurses-devel
yum install ncurses-devel
重新再make
还是报错
然后
make clean;make
还是报错
最后
重新
./configure –enable-debugging-symbols –enable-developer-warnings –enable-dependency-tracking
make
make install

OK了

一台机器load高的问题

从春节过后上班就一直在搞这台load比较高的机器
这台机器上跑的是apache+mod_ssl
最早以为是mod_ssl造成的load过高
于是把网通和教育网前端proxy转过来的请求都指给了http
(原来是https的请求指向https;http的请求指向http)
心想:少了至少一半的https请求,load该下来了吧
结果是: load还是居高不下
于是我又只有老老实实的查
查access_log,看看都访问了些什么东西
发现有个php程序是算某个文件的内容的md5码的
请求数巨多
于是我就打开看了看
发现是用函数md5_file来算的
我一翻php文档
发现这个函数速度巨慢,php文档建议用系统命令”openssl md5″来代替
我用测试程序测了下
发现用md5_file用的时间是openssl md5方法的70倍!!!

发现这个问题后
我欣喜若狂
总觉得应该已经找到问题之所在了
可当调整了程序之后,发现:
load还是没有降下去 :(

这下似乎陷入僵局了
期间我把ipv6 disable了,重起过机器,对降低load还是没有效果

我再仔细分析了系统情况
发现系统网络流量也不大、cpu也不是特别忙(50%左右的idle)、内存也还有富裕
唯一的问题就是cpu的iowait比较高,一般在40%~50%之间
那么看起来应该是系统硬盘io的问题咯
这台机器的应用倒是在不停的upload、download一些文件
磁盘io多是正常的
但是用高速scsi硬盘做了raid(应该是raid5)的设备上再做reiserfs系统的磁盘设备会是性能瓶颈?
听起来自己都不相信
于是用iostat 5来看
发现一个设备一般情况下每秒钟的时候有3000左右个block的写入
但是想想,一个block只有4k,那么一秒钟12M的写入,会造成性能瓶颈?不知道。

再用vmstat 5来看
发现io的bo一项经常有超过2000的数
按照某人的说法
当小文件随机写的数大于2000的时候
有性能问题
这台机器貌似就正是这个情况(小文件随机写)

大概齐知道问题所在硬盘读写之后
既然暂时改不了程序的话
那就想办法调优reiserfs

最后的结果是给mount reiserfs分区的时候加了一堆参数了事
参数是这样的:

defaults,noatime,nodiratime,notail,data=writeback

logrotate的一个诡异问题

今天听说有台机器的某些log没有被正确rotate
我就上去看
发现配置并没有问题呀
于是看log
/var/log/cron
看到cron.daily还是定时跑了的
再看
/var/spool/mail/root
发现错误提示了:

/etc/cron.daily/logrotate:

error: bad year 1991 for file /var/account/pacct in state file /var/lib/logrotate.status

ls -l /var/account/pacct

-rw——- 1 root root 83996800 Feb 14 17:25 /var/account/pacct
这个时间戳没有问题
再看文件/var/lib/logrotate.satus
发现

“/var/account/pacct” 1991-4-14

把这一行删掉
再跑logrotate
logrotate -f /etc/logrotate.conf
还是报另外一个文件的时间”年”1991有问题
再编辑/var/lib/logrotate.status文件
把所有1991年的都删掉
再重新跑logrotate
这个世界终于安静了
:)
不明白,一点都没搞明白到底是为什么

Linux下怎样拷贝vcd?

家里的老机器装了个ubuntu
想把常用的vcd都拷进去
这样看的时候就不用老用光盘了
而且光盘还容易坏……
Linux下用vcdxrip(ubuntu下如果没有的话请装vcdimage软件包)
进入想保存vcd内容的目录,然后
vcdxrip –cdrom-device=/dev/cdrom
如果出错误提示:

“**ERROR: psd offset out of range in extended PSD (try –no-ext-psd option)”

那么就依据提示,直接:
vcdxrip –cdrom-device=/dev/cdrom –no-ext-psd

url里的中文字符

当浏览器的地址栏里输入的url里如果含有中文字符的话
会被客户端(浏览器)先编码在送往服务器端
缺省状况下
浏览器(ie何firefox)都是设成用utf8编码url
但是服务器端(apache)却无从可知url采用的编码格式
因此也无法对其用正确的编码格式来解码
所以他就会直接去文件系统里按照你请求的url(编过码的)去取资源
如果文件系统里带有中文字符的资源的编码格式正好是客户端对url的编码格式的话
那么访问自然是没有问题
否则
就会出404的错误

在linux下怎样看cpu温度

cat /proc/acpi/thermal_zone/THM0/temperature