06. 11.
昨天在一台比较老的机器上安装freebsd 8,结果分区完毕之后,在Commit步骤地时候,提示:
“Unable to find device node for /dev/ad4s1b in /dev!
The creation of filesystems will be aborted.”
看样子是硬盘的一些问题,我手头也没可用的额外的硬盘来测试,在google查阅了大量资料,众说纷纭吧,有说的DMA模式的问题,有说因为分区的时候不应该使用“W”,搞到凌晨 2点多,最后发现了这篇:http://www.pubbs.net/201002/freebsd/3072-80-install-fails-to-create-filesystem-quotunable-to-find-devicenodequot.html
阅读全文 »
04. 14.
今天给php增加apd(Advanced PHP debugger)的扩展,发现如下错误:
/usr/local/src/apd-1.0.1/php_apd.c:967: error: ‘struct _zend_compiler_globals’ has no member named ‘extended_info’
后google到:http://lists.freebsd.org/pipermail/freebsd-ports/2010-April/060557.html
前因后果不再阐述,见下文:
2) error: ‘struct _zend_compiler_globals’ has no member named
‘extended_info’The member has been renamed to ‘compiler_options’ to hold additional
variables. So, for example, if the code looks like:CG(extended_info) = 1;
you can modify it in this way:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
编辑967行修改之:
vi /usr/local/src/apd-1.0.1/php_apd.c +967
把CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
重新make,make install,最后zend_extension = /path最好绝对路径/apd.so 搞定,好运!
04. 4.
之前由于精简系统的服务而没有开启irqbalance服务,但是irqbalance现在被证实为非常有必要的服务,他的主要功能是可以合理的调配使用各个CPU核心,特别是对于目前主流多核心的CPU,简单的说就是能够把压力均匀的分配到各个CPU核心上,对提升性能有很大的帮助,我引用一段话:
启用 irqbalance 服务,既可以提升性能,又可以降低能耗。irqbalance 用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态置于 Performance mode 或 Power-save mode。处于 Performance mode 时,irqbalance 会将中断尽可能均匀地分发给各个 CPU core,以充分利用 CPU 多核,提升性能。处于 Power-save mode 时,irqbalance 会将中断集中分配给第一个 CPU,以保证其它空闲 CPU 的睡眠时间,降低能耗。(详见:http://www.irqbalance.org/documentation.php)
开启irqbalance服务,具体操作如下:
shell> chkconfig –level 2345 irqbalance on
shell> service irqbalance start
如果没有此服务,请先安装依赖软件包,操作如下:
shell> yum -y install irqbalance
shell> service irqbalance start
可以使用shell>mpstat -P ALL 1 10来观察前后的实际的CPU使用运行情况。
03. 19.
转载于:http://blog.chinaunix.net/u3/93613/showart_1907687.html
进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事的两个概念。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。
处理器总处于以下三种状态之一:
1、内核态,运行于进程上下文,内核代表进程运行于内核空间;
2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;
3、用户态,运行于用户空间。
用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存 器值、变量等。所谓的“进程上下文”,可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。
阅读全文 »
03. 16.
上次遇到了”sshd_config” E212: Can’t open file for writing,所以找到下 面这篇讨论: http://www.linuxquestions.org/questions/linux-server-73/cannot-edit-sshdconfig-as-root-510959/
进一步理解chattr和lsattr:
转载自:http://chinarhcx.blog.51cto.com/194419/157054
chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多
功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令
修改属性能够提高系统的安全 性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var
目录。 lsattr比较简单,只是显示文件的属性
[root]#lsattr
—-ia—j— ./lsattr_test
这两个命令是用来改变文件、目录属性的,和chmod,ls这些命令相比,chmod只是改变文件的读写、执行权限,
更底层的属性控制是由chattr来改变的。
chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。
03. 9.
一般使用ssh去登陆linux主机的时候如果会慢,一般从以下几个方面入手分析原因:
本文系转载,原文地址:http://hi.baidu.com/jackli00/blog/item/51be9a00c13b110e1d958301.html
最近发现ssh连接的时候却很慢,ping的速度非常好,让人误以为是ssh连接不上。
分析结果,主要原因为:DNS的解析IP导致,可分别使用以下几种分析处理方式
1、在server上/etc/hosts文件中把你本机的ip和hostname加入
2、在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no
3、注释掉server上/etc/resolv.conf中不使用的IP所有行
4、修改server上/etc/nsswitch.conf中hosts为hosts:files
5、authentication gssapi-with-mic也有可能出现问题,在server上/etc/ssh/sshd_config文件中修改GSSAPIAuthentication no。/etc/init.d/sshd restart重启sshd进程使配置生效。
如之前为服务器配置了双网卡,使的在/etc/resolv.conf文件中多了一行目前不使用的IP地址。注释或者删除该行即可。
03. 1.
本文系转载,原文地址:http://www.jondy.net/blog/freebsdportsfetch-wget-axel-prozilla/
我选了第二种,多线程比较时候偶们公司的光纤~
Freebsd 中 ports默认的下载时使用fetch 经常出现龟速。
替代的下载工具常用的有wget、axel、prozilla。
替换方法就是修改make.conf 了,如下:
01. 21.
今天升级下系统,yum -y update时候提示如下错误:
package libstdc++-4.3.0-8.x86_64 (which is newer than libstdc++-4.1.2-46.el5_4.2.i386) is already installed
解决办法:
shell> updatedb
shell> locate libstdc++-4.1.2-46.el5_4.2.i386
/var/cache/yum/update/packages/libstdc++-4.1.2-46.el5_4.2.i386.rpm
shell> rpm -ivh –oldpackage –force /var/cache/yum/update/packages/libstdc++-4.1.2-46.el5_4.2.i386.rpm
01. 14.
一般不需要修改OpenSSH客户端配置文件。对于给定用户,共有两个配置文件,分别是~/.ssh/config(用户专用)和/etc/ssh/ssh_config(全局共享)。要按照该顺序读取这些文件,对于给定的某个参数,它使用的是读取过程中发现的第一个配置。用户可以通过以下方式将全局参数设置覆盖掉:在自己的配置文件中设置同样的参数。在ssh或scp命令行上给出的参数的优先级要高于这两个文件中所设置的参数的优先级。
用户的~/.ssh/config文件必须由该用户所有(他是目录”~/”的所有者),并且除了所有者之外任何人都不能写入该文件。否则客户端就会给出一条错误消息然后退出。这个文件的模式通常被设为600,这是因为除了它的所有者之外任何人都没有理由能够去读取它。
这些配置文件中的配置行包含着声明,这些声明均以某个关键字(不区分大小写)开头,后面是空白,最后是参数(区分大小写)。
可以使用关键字Host来使声明只作用于特定的系统。Host声明作用于它与下一个Host声明之间的所有配置行。在主机名中,可以使用通配符*和?。
Host hostnames
将下面的声明(
直到下一条Host声明)都指定为只适用于hostnames。hostnames采用的格式应该与在命令行上所用的格式一样,而且也能够包含通配符*和?。单个*指定所有主机。
CheckHostIP yes|no
12. 2.
直接举例:
shell> fdisk /dev/hda
The number of cylinders for this disk is set to 5221.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
阅读全文 »
hao32