linux 查看硬件信息:proc
cat /proc/cpuinfo #查看CPU信息,
cat /proc/meminfo #查看内存信息。
cat /proc/ioports #查看IO端口
cat /proc/swaps #查看交换分区信息(/proc)
cat /proc/partitions #查看磁盘分区
cat /proc/loadavg #查看系统负载

通过pmap指令查看哪些地方占用了内存

 pmap $(pgrep php-cgi |head -1)

指令ps找出消耗内存的元凶

 ps -A --sort -rss -o comm,pmem,pcpu |uniq -c |head -15

修改php-fpm 进程数在/usr/local/php/etc/php-fpm.conf 查找max_children 将后面的值修改成你要设置的值就可以,因为是子进程的原因,所以设置成1的话实际上会有两个进程,因为还有一个主进程。

#vi /usr/local/php/etc/php-fpm.conf

找到max_children,按你的内存容量修改PHP进程的数量,一般128内存开启6个,256内存开启16个。

request_terminate_timeout

request_terminate_timeout 指的是fast-cgi的执行脚本时间,它默认是0s。0s的含义是让php-cgi一直执行下去而没有时间限制。如果你在此设成0s,那么当出现502 Bad Gateway的时候,这个502的状态将一直持续下去不会改变。但是如果你设置成5s,那么当php-cgi假死5s以后会自动恢复。这个值可以根据你 服务器的性能进行设定,这里我设置的是30s。

修改修改nginx进程数,根据CPU核心数量修改

vi /usr/local/nginx/conf/nginx.conf

开3个进程
worker_processes 3;
worker_cpu_affinity 0010 0100 1000;

优化后,使用以下命令重新启动lnmp

/root/lnmp restart

使用压力测试工具:siege的用法

Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试。

安装 Siege

 

 

#一般都是推荐下面的下载地址,
#wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
#tar -xzvf siege-latest.tar.gz
#如果上面地址失效,请使用这个,或者用Google搜索siege.tar.gz找到合适的

#wget http://pkgs.fedoraproject.org/repo/pkgs/siege/siege-3.0.5.tar.gz/822cc4750a6162945ee91af98773bda4/siege-3.0.5.tar.gz
#tar -xzvf siege-3.0.5.tar.gz

安装

#./configure
#make
#make install

成功:

siege –help 

(如果有help出现,则已经安装成功)

常用的siege命令举例

对本机测试一般用:

siege -c 300 -t 30s 127.0.0.1

参数详解:

-C,或–config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文件HOME/.siegerc,可以编辑里面的参数,这样每次siege都会按照它运行.v运行时能看到详细的运行信息cn,或–concurrent=n模拟有n个用户在同时访问,n不要设得太大,因为越大,siege消耗本地机器的资源越多i,internet随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),urls.txt存在是有效dn,delay=nhit每个url之间的延迟,0n之间rn,reps=n重复运行测试n,不能与t同时存在tn,time=n持续运行siegen’秒(10S),分钟(10M),小时(10H)l运行结束,将统计数据保存到日志文件中siege.log,一般位于/usr/local/var/siege.log,也可在.siegerc中自定义RSIEGERC,rc=SIEGERC指定用特定的siege配置文件来运行,默认的为HOME/.siegerc中,可以编辑里面的参数,这样每次siege 都会按照它运行. -v 运行时能看到详细的运行信息 -c n,或–concurrent=n 模拟有n个用户在同时访问,n不要设得太大,因为越大,siege 消耗本地机器的资源越多 -i,–internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效 -d n,–delay=n hit每个url之间的延迟,在0-n之间 -r n,–reps=n 重复运行测试n次,不能与 -t同时存在 -t n,–time=n 持续运行siege ‘n’秒(如10S),分钟(10M),小时(10H) -l 运行结束,将统计数据保存到日志文件中siege .log,一般位于/usr/local/var/siege .log中,也可在.siegerc中自定义 -R SIEGERC,–rc=SIEGERC 指定用特定的siege 配置文件来运行,默认的为HOME/.siegerc
-f FILE, –file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege 安装目录下的etc/urls.txt
-u URL,–url=URL 测试指定的一个URL,对它进行”siege “,此选项会忽略有关urls文件的设定

结果说明:

Transactions: 30000 hits //完成30000次处理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 68.59 secs //总共使用时间
Data transferred: 817.76 MB //共数据传输 817.76 MB
Response time: 0.04 secs //响应时间,显示网络连接的速度
Transaction rate: 437.38 trans/sec //平均每秒完成 437.38 次处理
Throughput: 11.92 MB/sec //平均每秒传送数据
Concurrency: 17.53 //实际最高并发连接数
Successful transactions: 30000 //成功处理次数
Failed transactions: 0 //失败处理次数
Longest transaction: 3.12 //每次传输所花最长时间
Shortest transaction: 0.00 //每次传输所花最短时间

siege -c 200 -r 100 http://www.google.com

200个并发对http://www.google.com发送请求100次

参数说明:
-c 20 并发20个用户
-r 2 重复循环2次
-f baidu.url 任务列表文件:URL列表

Siege命令常用参数

-c 200 指定并发数200
-r 5 指定测试的次数5
-f urls.txt 制定url的文件
-i internet系统,随机发送url
-b 请求无需等待 delay=0
-t 5 持续测试5分钟
# -r和-t一般不同时使用

Siege使用的一些总结

1,发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2
2,如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确

Siege输出结果说明

Transactions: 总共测试次数
Availability: 成功次数百分比
Elapsed time: 总共耗时多少秒
Data transferred: 总共数据传输
Response time: 等到响应耗时
Transaction rate: 平均每秒处理请求数
Throughput: 吞吐率
Concurrency: 最高并发
Successful transactions: 成功的请求数
Failed transactions: 失败的请求数

参考:
http://blog.csdn.net/yybjroam05/article/details/19074389
http://www.zxsdw.com/index.php/archives/881/
http://blog.log4d.com/2011/11/vps-lnmp-setup-config/
http://www.opsers.org/linux-home/server/php-fpm-on-analysis-of-system-resources.html

发表回复