1、PHP有没有办法判断服务器压力过大,访问的人过多
wp-cron.php进程过多造成服务器负载过大的解决办法
WordPress定时任务(如数据库自动备份、自动发表文章)主要靠wp-cron.php来实现的,其原理如下:当有用户访问Wordpress站点的内容是,Wordpress系统判断当时是否有需要运行的后台任务,如果有则在后台访问wp-cron.php执行定时任务。Wordpress定时任务功能给用户确实带来了很大的方便,但是也有一些用户在使用定时任务时遇到了一些问题。如wp-super-cache缓存插件的用户可能会遇到wp-cron.php进程过多,造成服务器负载过大或虚拟主机CPU配额超标。
如你遇到wp-cron.php进程过多造成服务器负载过大,可以通过以下方法解决:
1、禁用Wordpress定时任务wp-cron,编辑wp-config.php,加入以下内容:
define( 'DISABLE_WP_CRON' , true);
WordPress定时任务被禁用后,会造成一些功能无法使用,如数据库定时备份、定时发表文章等。如你确需要以上功能,可通过服务器crontab设置定时访问wp-cron.php来执行定时任务,具体方法如下:
2、在Linux系统的crontab中填加以下内容(请修改对应的Wordpress目录),设置每15分钟访问一次wp-cron.php以执行Wordpress定时任务。
*/15 * * * * php -q /home/public_html/wp-cron.php
2、如何使用ab对WebSocket服务器做并发性能测试
Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便。
工具/原料
Apache
方法/步骤
打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具。
在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序。注意直接双击无法正确运行。
执行ab命令成功后,可以看到如图提示。该帮助很清楚详细的介绍了ab的用法以及各个参数的含义。
ab 的用法是:ab [options] [http://]hostname[:port]/path
例如:ab -n 5000 -c 200 http://localhost/index.php
上例表示总共访问http://localhost/index.php这个脚本5000次,200并发同时执行。
ab常用参数的介绍:
-n :总共的请求执行数,缺省是1;
-c: 并发数,缺省是1;
-t:测试所进行的总时间,秒为单位,缺省50000s
-p:post时的数据文件
-w: 以html表的格式输出结果
执行测试用例:ab -n 1000 -c 100 -w http://localhost/index.php >>c:\1.html
上面的测试用例表示100并发的情况下,共测试访问index.php脚本1000次,并将测试结果保存到c:\1.html文件中。
测试报告如图,可知在该100并发访问的情况下,共测试访问1000次,失败了852次。可知该脚本在此环境无法满足100并发访问的要求。
修改参数继续测试。测试并发50和30两种情况,由测试报告得知,在并发访问降到30时,错误的访问数降为39。
步骤阅读
3、Nginx+PHP-fpm优化并发量
土豪!! 需要打杂的不?
5台8核16G,都是php服务器? 不是我说,这是吊炸天的节奏啊!
集群没接触到,不过我感觉的话,只用一台机子1K的并发是没问题的,前提是图片、静态文件,数据库在其他服务器上。
首先,你告诉nginx系统是8核的。 其次你这配置,php-fpm进程开300+差不多吧,具体数值多测试测试。有个max_children_length 和 进程静态开启
接下来,为什么并发扛不住呢? 还不是因为单个php进程占用时间长,导致后面阻塞。
所以nosql一定设计好
不是我说,16G内存,你们多大的数据库?要是我,将大部分数据存在内存,走内存多快。
之后php连接mysql要及时关闭,mysql也有连接数上限的,要是不及时关闭,后面php连mysql也会堵住。
真的,打算年后跳槽,你们这么N的公司,缺个扫地的不?
补充一下,曾经看见一个测试数据,阿里云1G1核并发能撑到600.
4、PHP做聊天服务器后台,并发一万,用socket可以么
您好,我来为您解答:
肯定socket性能高呀
php写服务器没问题的,你看下 workerman-chat,是一个现专成的php聊天属室框架。普通的php程序肯定不行。
还有个更牛的动态聊天程序,后台也是php写的服务器支撑的。
希望我的回答对你有帮助。
5、Php 网站并发量,假如同时有一百个人来请求我的商品页面goods.php?goods_id=x
100个请求不算大并发吧 当一个请求过来时,php就创建一个进程,专门接待这个请求,专直到处理属完这个请求。php能同时派出很多人(进程),互不干扰。
服务器处理器和内存越大,php就能派出越多的人。这个不需要php程序员操心。当然,处理器和内存一定的情况先,如果每个人的工作量越小(程序设计的越优),php就能同时派出更多的人。
6、请教,如何对PHP站点作压力测试
网站压力制测试Web-CT 4.0
可以测试不同上网方式、在不同地区、访问Web不同页面、在不同并发访问密度情况下的:客户端的响应时间、流量和流速;可以测试任何主机、Web Server和页面(HTML、CGI、JSP、PHP、ASP、GIF、FLASH以及声音、MPEG等多媒体文档);可以进行分布式多机并行测试,然后合并和计算机测试报告,实现极高的服务器测试压力。
7、php web服务器。网站上线在即,请问如何测试服务器压力呢?比如如何知道这个网站到底能同时承受
利用一些软件吧,可用来进行 Web 压力测试的工具有很多,比如微软的 Web Application Stress、Linux下的 siege、功能全面的 Web-CT 等等,这些都是非常优秀的 Web 压力测试工具。
一、 Siege
一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
官方:http://www.joedog.org/
1. 下载源码
请自行google例如:
wget http://soft.vpser.net/test/siege/siege-2.67.tar.gz
2. 解压、编译和安装
tar -zxf siege-2.67.tar.gz cd siege-2.67/ /configure make && make install
3. 运行siege
siege -c 200 -r 10 -f test.txt
-c是并发量,-r是重复次数。 url文件就是一个文本,每行都是一个url,它会从里面随机访问的。
test.txt 内容:
http://blog.test.com/wp-content/uploads/2012/07/cluster6.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7.png
http://blog.test.com/wp-content/uploads/2012/07/cluster8-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster9-150x150.png
4 结果说明
Lifting the server siege… done.
Transactions: 3419263 hits //完成419263次处理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 5999.69 secs //总共用时
Data transferred: 84273.91 MB //共数据传输84273.91 MB
Response time: 0.37 secs //相应用时1.65秒:显示网络连接的速度
Transaction rate: 569.91 trans/sec //均每秒完成 569.91 次处理:表示服务器后
Throughput: 14.05 MB/sec //平均每秒传送数据
Concurrency: 213.42 //实际最高并发数
Successful transactions: 2564081 //成功处理次数
Failed transactions: 11 //失败处理次数
Longest transaction: 29.04 //每次传输所花最长时间
Shortest transaction: 0.00 //每次传输所花最短时间
二、Webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,安装使用简单方便。
1. 下载源码
请自行google例如:
wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
2. 解压、编译和安装
tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make mkdir /usr/local/man #建立相应目录否则导致无法正常安装 make install
3. 运行webbench
webbench -c 100 -t 30 http://192.168.1.235/index.html
-c表示并发数,-t表示时间(秒)
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.1.235/index.html
100 clients, running 30 sec.
Speed=16084 pages/min, 152872 bytes/sec. #运行结果显示
Requests: 8042 susceed, 0 failed.
三、Web Application Stress Tool
这是由微软的网站测试人员开发的专门用来进行实际网站压力测试以一套工具。透过这套功能强大的压力测试工具,管理人员可以在网站实际上线之前先网站进行如同真实环境下的测试,以找出系统潜在的问题,对系统进行进一步的调整、设置工作。
8、普通linux服务器nginx+php能支持多少并发
同楼上所说,自己下载个软件来做下压力测试才能得出较准确的数据,使用nginx更多是专用来支属持动态页面,而且还可以做代理和一些限制设置,但论功能而言比apache更广, apache 更擅长于对静态页面的解释,稳定且比nginx配置更为简单,两个各有优点
9、为什么这么多人觉得运行PHP的并发可以上1000??
网上说的有些夸大,关键还在于nginx+php+fastcgi搭建完或搭建过程中的一些优化,包括使用缓存加速工具,经过优化后web性能有明显的提高。这是我用压力测试工具测试的并发数量。
[root@mysql-DRBD-M webbench-1.5]# webbench -c 8000 -t 30 http://192.168.1.60/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.1.60/index.php
8000 clients, running 30 sec.
Speed=49520 pages/min, 189468 bytes c.
Requests: 24752 susceed, 8 failed.
kimi 17:23:04
10、如何利用ApacheBench进行服务器压力测试
Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便。
工具/原料
Apache
方法/步骤
打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具。
在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序。注意直接双击无法正确运行。
执行ab命令成功后,可以看到如图提示。该帮助很清楚详细的介绍了ab的用法以及各个参数的含义。
ab 的用法是:ab [options] [http://]hostname[:port]/path
例如:ab -n 5000 -c 200 http://localhost/index.php
上例表示总共访问http://localhost/index.php这个脚本5000次,200并发同时执行。
ab常用参数的介绍:
-n :总共的请求执行数,缺省是1;
-c: 并发数,缺省是1;
-t:测试所进行的总时间,秒为单位,缺省50000s
-p:POST时的数据文件
-w: 以HTML表的格式输出结果
执行测试用例:ab -n 1000 -c 100 -w http://localhost/index.php >>c:\1.html
上面的测试用例表示100并发的情况下,共测试访问index.php脚本1000次,并将测试结果保存到c:\1.html文件中。
测试报告如图,可知在该100并发访问的情况下,共测试访问1000次,失败了852次。可知该脚本在此环境无法满足100并发访问的要求。
修改参数继续测试。测试并发50和30两种情况,由测试报告得知,在并发访问降到30时,错误的访问数降为39。
步骤阅读