BASH多进程并行处理的方法实现
[ 2010/11/03 18:51 | by selboo ]
#!/bin/bash
SEND_THREAD_NUM=13
tmp_fifofile=”/tmp/$$.fifo” # 脚本运行的当前进程ID号作为文件名
mkfifo “$tmp_fifofile” # 新建一个随机fifo管道文件
exec 6<>”$tmp_fifofile” # 定义文件描述符6指向这个fifo管道文件
rm $tmp_fifofile
for ((i=0;i<$SEND_THREAD_NUM;i++));do
echo # for循环 往 fifo管道文件中写入13个空行
done >&6
for i in `seq 100`;do # 100 次 for 循环 开始
read -u6 # 从文件描述符6中读取行(实际指向fifo管道)
{
echo $i # 打印 i
sleep 3 # 暂停3秒
echo >&6 # 再次往fifo管道文件中写入一个空行。
} &
# {} 这部分语句被放
SEND_THREAD_NUM=13
tmp_fifofile=”/tmp/$$.fifo” # 脚本运行的当前进程ID号作为文件名
mkfifo “$tmp_fifofile” # 新建一个随机fifo管道文件
exec 6<>”$tmp_fifofile” # 定义文件描述符6指向这个fifo管道文件
rm $tmp_fifofile
for ((i=0;i<$SEND_THREAD_NUM;i++));do
echo # for循环 往 fifo管道文件中写入13个空行
done >&6
for i in `seq 100`;do # 100 次 for 循环 开始
read -u6 # 从文件描述符6中读取行(实际指向fifo管道)
{
echo $i # 打印 i
sleep 3 # 暂停3秒
echo >&6 # 再次往fifo管道文件中写入一个空行。
} &
# {} 这部分语句被放
Linux实现双线双IP的方法
[ 2010/11/03 11:39 | by selboo ]
实现双线(接口)双IP,一般基于两种需求:
1. 允分利用多接口,提高服务器的网络吞吐能力。在两个网卡上分别接上网络,分别配置一个IP地址,想像着可以突破服务器本身网卡速度的限制。比如下载服务器,接两根网线,配置两个IP,于是便有了两个网卡上的带宽可以使用。
2. 经典的双线双IP,借助于“智能DNS系统”,解决网通、电信网络之间访问的网络瓶颈。
想象很美好,但是实际上,并不是那么容易实现的。
一般情况下,一台主机的网络参数里有一个“默认网关”。所谓默认网关的意义就是:凡是路由表中没有明确指明应该发往哪里(接口)的数据包,通通发往“默认网关”(接口)。
那么,当有两个接口(需要分别配置一个IP)的时候,该怎么配置“默认网关”呢?姑且先不管能不能配上两个“默认网关”,对于系统来说,系统是不是会犯迷糊?“两个默认网关,我到底将包发往哪儿?”
所以,并不是想当然的,给系统的两个接口上配置两个IP,然后就可以想当然的实现“双IP了”。
在Windows 2003上,是不
1. 允分利用多接口,提高服务器的网络吞吐能力。在两个网卡上分别接上网络,分别配置一个IP地址,想像着可以突破服务器本身网卡速度的限制。比如下载服务器,接两根网线,配置两个IP,于是便有了两个网卡上的带宽可以使用。
2. 经典的双线双IP,借助于“智能DNS系统”,解决网通、电信网络之间访问的网络瓶颈。
想象很美好,但是实际上,并不是那么容易实现的。
一般情况下,一台主机的网络参数里有一个“默认网关”。所谓默认网关的意义就是:凡是路由表中没有明确指明应该发往哪里(接口)的数据包,通通发往“默认网关”(接口)。
那么,当有两个接口(需要分别配置一个IP)的时候,该怎么配置“默认网关”呢?姑且先不管能不能配上两个“默认网关”,对于系统来说,系统是不是会犯迷糊?“两个默认网关,我到底将包发往哪儿?”
所以,并不是想当然的,给系统的两个接口上配置两个IP,然后就可以想当然的实现“双IP了”。
在Windows 2003上,是不
Linux的启动过程
[ 2010/11/03 11:36 | by selboo ]
整个开机流程是
(1)载入BIOS的硬件信息,并取得第一个开机装置的代号
(2)读取第一个开机装置的MBR的boot Loader (grub)的开机信息
(3)载入OS Kernel信息,解压Kernel,尝试驱动硬件
(4)Kernel执行init程序并获得run-lebel信息(如3或5)
(5)init执行/etc/rc.d/rc.sysinit
(6)启动内核外挂模块(/etc/modprobe.conf)
(7)init执行run-level的各种Scripts,启动服务
(8)init执行/etc/rc.d/rc.local
(9)执行/bin/login,等待用户Login
(10)Login后进入Shell
Linux启动过程综述
http://www.ibm.com/developerworks/cn/linux/kernel/startup/
剖析Linux系统启动过程
http://www.5dmail.net/html/2004-
(1)载入BIOS的硬件信息,并取得第一个开机装置的代号
(2)读取第一个开机装置的MBR的boot Loader (grub)的开机信息
(3)载入OS Kernel信息,解压Kernel,尝试驱动硬件
(4)Kernel执行init程序并获得run-lebel信息(如3或5)
(5)init执行/etc/rc.d/rc.sysinit
(6)启动内核外挂模块(/etc/modprobe.conf)
(7)init执行run-level的各种Scripts,启动服务
(8)init执行/etc/rc.d/rc.local
(9)执行/bin/login,等待用户Login
(10)Login后进入Shell
Linux启动过程综述
http://www.ibm.com/developerworks/cn/linux/kernel/startup/
剖析Linux系统启动过程
http://www.5dmail.net/html/2004-
快速了解Apache环境
[ 2010/11/03 11:34 | by selboo ]
当前使用的Apache的版本为2.2.3,支持以下使用方式:
apachectl -v
apachectl -V
apachectl -l
apachectl -L
apachectl -S
apachectl -M
apachectl -V
1. 查看Server version。
2. 查看编译时间。
3. APR 及 APR-Util 的版本。
4. 硬件架构/平台(64-bit/32-bit)
5. 查看 Server MPM(Prefort/Worker)
6. 是否支持线程(threaded)
7. 定位 HTTPD_ROOT
8. 定位配置文件
9. ……
apachectl -l
静态编译进httpd程序的模块。比如:
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
这个命
apachectl -v
apachectl -V
apachectl -l
apachectl -L
apachectl -S
apachectl -M
apachectl -V
1. 查看Server version。
2. 查看编译时间。
3. APR 及 APR-Util 的版本。
4. 硬件架构/平台(64-bit/32-bit)
5. 查看 Server MPM(Prefort/Worker)
6. 是否支持线程(threaded)
7. 定位 HTTPD_ROOT
8. 定位配置文件
9. ……
apachectl -l
静态编译进httpd程序的模块。比如:
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
这个命
linux下top命令参数解释
[ 2010/11/01 17:27 | by selboo ]
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 1 |