请问怎么测试纯动态的情况下能支持多少访问?

#1 快信达

如题,在什么情况下需要使用memcache,redis?想用speedphp做一个全动态的网站。 知道的请帮忙回答一下,非常感谢!!

2014-11-24 08:17:49

#2 jake

最简单的压力测试是ab测试,百度一下就知道。边开ab测试边观察系统负载,一般超过系统负载一半左右算是性能刚刚好,如果接近系统总负荷的话,那就是顶点了。

什么时候用memcached?
1. 当读写比超过1000比1的时候,用memcached性价比比较高。读写比的意思是select查询和insert/update/delete操作的比例。一般而言读远比写更快而且对系统没有太大的影响,1次写的效率和1000次读的效率几乎是一样的,所以如果读的比例高过1000,那么证明读取已经有困难了,所以加上memcached来缓存读取的数据。
2. 当数据库顶不住的时候,小应用一般用的mysql都是读写硬盘比较多,所以可以看看mysql的资源占用(包括CPU内存和IO情况),如果发现已经超过系统负荷的一半以上,仍继续增长,那么最好加上memcached。
3. 还有一种情况用memcached也是性价比比较高的,就是阅读类的网站,不需要太多动态的内容。不过和楼主说的不一样。

redis和memached是两个不同的东西,redis可以看做一个有特殊功能的数据库(mysql),当然redis的hash也可以当做memcached来用,区别只是redis会持久化。
什么时候用redis呢?
1. 当memcached来用,上面已经说过了。相对来说redis比memcached的数据更安全些,因为会持久化,所以不怕断电就丢失数据。
2. 要用特殊数据方式,如数据分组,队列等。举个最明显的例子,就是排行榜。排行榜一般用mysql做的话,每次+1都需要update一次(写入次数多了那么数据库性能会下降),而且每次取出排行榜时都需要order by,order by性能也是比较低的。但是如果用redis的sorted set的话,就非常简单而且性能非常高了,所以这个时候就可以考虑用redis。

2014-11-24 09:22:10

#3 快信达

老大这么快就回复了,而且回复的这么详细,真的太感谢您了!

2014-11-24 10:19:57

#4 坤宇

什么意思,

2014-11-24 11:16:47

#5 快信达

如果要缓解写入数据太多太频繁的话,例如页面访问量,点赞等可以通过memcache 先缓存写入的内容,等达到一定的数量再一次写入数据库吗? 再结合您所讲解的,解决一个纯动态网站不是特别大的读写应该没问题了吧。另外还想请教您一下,最近有接触学习了下ruby on rails框架,也看了很多跟php对比的文章,都比较质疑php框架的性能,说是PHP每次请求都要初始化很多东西,开销很大。请问PHP纯动态的性能真的很差吗?

2014-11-24 15:02:14

#6 jake

快信达 发表于 2014-11-24 15:02
如果要缓解写入数据太多太频繁的话,例如页面访问量,点赞等可以通过memcache 先缓存写入的内容,等达到一 ...
如果要缓解写入数据太多太频繁的话,例如页面访问量,点赞等可以通过memcache 先缓存写入的内容,等达到一定的数量再一次写入数据库吗?

一般都是这样做的,结合定时任务来做。

再结合您所讲解的,解决一个纯动态网站不是特别大的读写应该没问题了吧。

是的

另外还想请教您一下,最近有接触学习了下ruby on rails框架,也看了很多跟php对比的文章,都比较质疑php框架的性能,

ROR的性能比php差太多了,建议去看看ruby元编程一书,看完了就明白,ruby牛B在元编程,但是也是因为元编程,所以性能在本质上是没有办法比得过php的。

说是PHP每次请求都要初始化很多东西,开销很大。请问PHP纯动态的性能真的很差吗?

PHP在老的版本是这样,不过从fastcgi版本后(约PHP4.x之后),就已经不是了。可以看看PHP内核加载顺序之类的文章,实际上fastcgi环境里面,php每次请求不是从头开始加载,而是有很多一部分是一直在跑的,加载的只是用户的php程序。


还有,php如果开启了opcode缓存,那么性能是目前除了C++服务端外最好的,比java还要快,当然ruby之类就不用说了。


php框架而言,分开来看,一方面框架是牺牲部分性能来提高开发效率,这点不管是ror或者是php的框架都是同理。另一方面,php现有框架也要分开来看,有精简的框架也有沉重的框架,精简的是类似speedphp这种,性能比起纯php只是差了点。沉重的就不点名了,反正就是用了什么模式之类的,努力学习java框架的那种类型的框架,性能来说就差了。

2014-11-24 15:50:20