登录 |

Loadrunner Generator for Linux

2012年12月25日 下午 58:47 | 作者:

Ubuntu 12.04 安装步骤

#添加loadrunner帐号
useradd -s /bin/bash -m loadrunner
passwd loadrunner
su loaddrunner

#设置环境变量
vim ~/.bashrc
#Mercury LoadRunner8.1
export M_LROOT=/opt/Mercury
export LD_LIBRARY_PATH=${M_LROOT}/bin
export PATH=${M_LROOT}/bin:$PATH
export DISPLAY=localhost:0.0

#上传安装包,解压
unzip LoadRunner8.1.zip
cd LoadRunner8.1
#安装脚本赋予可执行权限
chmod a+x install.sh
#执行安装
sudo ./install.sh -console

#如果执行rsh,需要创建一个可信host文件
touch .rhosts
#验证安装
verify_generator

#放开文件描述符限制
ulimit -n 10240
#启动load-generator
m_daemon_setup start

mysql_connect localhost和127.0.0.1的区别?

2012年12月12日 下午 52:38 | 作者:

connects.php

mysql_connect('127.0.0.1','root','zzzizzz1');
mysql_connect('localhost','root','zzzizzz1');

使用strace获取系统调用:

strace php connects.php 2>&1 | grep connect

#127.0.0.1 -> internet socket
connect(3, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
#localhost -> unix domain socket
connect(7, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = 0

Socket原本是为网络通讯设计的,但后来在Socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。
虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:
不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。
这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。
UNIX Domain Socket也提供面向流和面向数据包两种API接口,类似于TCP和UDP,但是面向消息(UDP)的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。

参考:
http://lists.freebsd.org/pipermail/freebsd-performance/2005-February/001143.html