`
wangzy
  • 浏览: 6643 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java实现单pc服务器300万全动态pv/天

阅读更多

之前有人觉得douban.com单应用服务器实现500w全动态pv每天不可思议,其实目前稍好一些的服务器硬件应该是可以达到的。

笔者的一个java开发的web游戏项目正在内测,应用服务器其实也不贵,人民币16000一台的dell 1950,内存8g,2个4核最低端的志强 cpu。

软件结构是lighttpd + resin + memcached + mysql,mysql在另外一个服务器上(douban也是同样)

项目运行的第二天,动态pv达到了269万(通过google统计获得的数据,自己的日志分析也大概这个数值,稍大过一些),每ip用户访问页面133个。这数据是在访问量最高的下午2点到4点停机情况下获得的。因此如果不停机,pv肯定要超过300万了。

此种情况下,服务器的负载一直保持在1-2之间,idle是85%-92%之间,非常的空闲。估计如果用户量再上去的话,500万的时候系统应该还是有足够的能力富余。阿北说如果服务器再好些,单应用服务器能上1000w,我想应该是没什么问题的。

数据应该毋庸置疑,和douban不一样的是,我这个项目的数据频繁变化,因为是游戏,当然变化的都是数值类型。不过此种情况下,mysql的数据量一天也能够增长500M。因为频繁数据变化,mencached的缓存命中率要比一些其他项目低很多。

此外此项目,每天的流量大概为60多GB,每天hits则有2000多万。

分享到:
评论
44 楼 chenqj 2008-04-14  
robbin 写道
ztka 写道
楼主,请问,你在redhat底下用netstat -an | grep HTTP | wc -l

这个命令,得到多少进程???这才是关键,其他pv什么都是假的

http连接数其实也不太准确,像JavaEye在峰值的时候,lighttpd的并发连接数量可以达到将近300个,此时的httpd连接数有时候高达2000个以上,但一天下来PV也不过70万而已,你怎么算?

说明应用处理速度有待提高
43 楼 hustKiwi 2008-04-14  
hysoft 写道
简直一web版的魔兽啊

没怎么玩,注册了号随便试了试,感觉有点儿像英雄无敌~
42 楼 robbin 2008-04-14  
ztka 写道
楼主,请问,你在redhat底下用netstat -an | grep HTTP | wc -l

这个命令,得到多少进程???这才是关键,其他pv什么都是假的

http连接数其实也不太准确,像JavaEye在峰值的时候,lighttpd的并发连接数量可以达到将近300个,此时的httpd连接数有时候高达2000个以上,但一天下来PV也不过70万而已,你怎么算?
41 楼 ztka 2008-04-14  
楼主,请问,你在redhat底下用netstat -an | grep HTTP | wc -l

这个命令,得到多少进程???这才是关键,其他pv什么都是假的
40 楼 小嘴看世界 2008-04-14  
看着不错  中午的时候玩玩
俺对ibaits也是情有独钟
39 楼 javachs 2008-04-14  
啥时在搞个spring+hibernate的web游戏,那就爽了,大家学习学习。
38 楼 javachs 2008-04-14  
兄弟,你太牛了,可惜我不太玩游戏,只是玩玩实况。
37 楼 linjie 2008-04-13  
标题完全吸引眼球~
36 楼 seasar 2008-04-13  
楼主用的服务器比douban 的好一个数量机.没有可比性
35 楼 wangzy 2008-04-12  
<div class='quote_title'>robbin 写道</div>
<div class='quote_div'>
<p>JavaEye的Web服务器是两颗单核的很古老的AMD CPU。原来估计能跑到100万PV就不错了,但是前段时间也观测到曾经跑到过96万PV,表现也很正常,峰值50-60%,这样来看,应该能跑得更多吧,个人推测极限在单机200万PV吧。</p>
<p> </p>
</div>
<p>这样的硬件用ror搞是很猛了</p>
34 楼 wangzy 2008-04-12  
davexin 写道
动态1000pv,感觉你的机器跑不出来的,虽然你的idle 空闲很多,但是案作过linux as4的测试,他的并发线程是有限制的,按测试的数据达不到你说的那么强。修改过一次linux as4的内核线程数,结果机器死乐,很郁闷,不过俺还是不太相信你的数据,因为你没有考虑到,并发在增加的时候,超过你机器的极限的时候,是啥样子,你想过吗?我可是知道的,40台机器几分钟内访问不了的郁闷的,所以俺对你的假设不太相信的。


游戏行业比较特殊,流量非常均匀,没有特别高峰的情况,所以最高的时候并发其实还是不大的。

我这个redhat没调过参数的,昨天总算出了too many open files了,调整了一下继续,呵呵

开的第四天pv已经达到328万了,每天流量达到78G了,不过cpu idle还是在80%以上。
33 楼 gstripe 2008-04-12  
试试看,我喜欢这种感觉。
32 楼 robbin 2008-04-12  
<div class='quote_title'>wangzy 写道</div>
<div class='quote_div'>
<div class='quote_title'>robbin 写道</div>
<div class='quote_div'>
<p>你用的是2*4=8个CPU核,而豆瓣是1*2=2个CPU核,Web服务器的计算能力得有3-4倍的差距吧?再者Java的性能岂是Python可以相提并论的?这个差距也是非常大的,因此你的网站性能表现这么好,我到一点不觉得意外,只要程序写的没有问题,这是应当的。当然阿北号称单机四核他可以支撑1000万PV,我也只当他吹牛而已。</p>
<p> </p>
</div>
<p> </p>
<p>赞同,这次我们测试的主要目的是压力,在最后几天会用机器人模拟一下玩家操作,看到时候的在线和压力情况。</p>
<p>不知道javaeye现在的情况是怎样?</p>
<p> </p>
</div>
<p>JavaEye的Web服务器是两颗单核的很古老的AMD CPU。原来估计能跑到100万PV就不错了,但是前段时间也观测到曾经跑到过96万PV,表现也很正常,峰值50-60%,这样来看,应该能跑得更多吧,个人推测极限在单机200万PV吧。</p>
<p> </p>
31 楼 davexin 2008-04-12  
动态1000pv,感觉你的机器跑不出来的,虽然你的idle 空闲很多,但是案作过linux as4的测试,他的并发线程是有限制的,按测试的数据达不到你说的那么强。修改过一次linux as4的内核线程数,结果机器死乐,很郁闷,不过俺还是不太相信你的数据,因为你没有考虑到,并发在增加的时候,超过你机器的极限的时候,是啥样子,你想过吗?我可是知道的,40台机器几分钟内访问不了的郁闷的,所以俺对你的假设不太相信的。
30 楼 z7c9 2008-04-12  
请问有没有做 resin cluster和mysql cluster?
29 楼 shaobin0604 2008-04-11  
dingyuan 写道
hpq852 写道
jiakechong 写道
小声问下
1 选resin,没用tomcat?为所么
2 ibatis (不知道如何)



Resin 支持 Native IO, 而 Tomcat 只能用 pure java IO

貌似tomcat在5.5.x以后就已经能native io


NOD, via APR
28 楼 dingyuan 2008-04-11  
hpq852 写道
jiakechong 写道
小声问下
1 选resin,没用tomcat?为所么
2 ibatis (不知道如何)



Resin 支持 Native IO, 而 Tomcat 只能用 pure java IO

貌似tomcat在5.5.x以后就已经能native io
27 楼 Joo 2008-04-11  
wangzy 写道
操作系统为redhat as 5 x86_64

lighttpd用于静态文件的处理

spring + ibatis,换成hibernate也是可以的


如果是类似WOW那样的大动态游戏,应该没有多少静态数据才对吧 我倒是觉得做ORM会不会影响到数据更新和提取的速度
26 楼 wangzy 2008-04-11  
<div class='quote_title'>robbin 写道</div>
<div class='quote_div'>
<p>你用的是2*4=8个CPU核,而豆瓣是1*2=2个CPU核,Web服务器的计算能力得有3-4倍的差距吧?再者Java的性能岂是Python可以相提并论的?这个差距也是非常大的,因此你的网站性能表现这么好,我到一点不觉得意外,只要程序写的没有问题,这是应当的。当然阿北号称单机四核他可以支撑1000万PV,我也只当他吹牛而已。</p>
<p> </p>
</div>
<p> </p>
<p>赞同,这次我们测试的主要目的是压力,在最后几天会用机器人模拟一下玩家操作,看到时候的在线和压力情况。</p>
<p>不知道javaeye现在的情况是怎样?</p>
<p> </p>
25 楼 ai2ming 2008-04-11  
看了看兵种的介绍,简直和英勇无敌一模一样,图片也差不多

相关推荐

    java模拟实现PV操作

    Java模拟实现PV操作是多线程编程中一个重要的概念,主要应用于解决生产者-消费者问题。在并发编程中,PV操作(即信号量Semaphore)是由荷兰计算机科学家Edsger Dijkstra提出的,它通过控制对共享资源的访问来避免竞...

    Java实现的进程同步与互斥(PV)

    本主题主要关注如何使用Java语言实现这些概念,特别是通过PV操作(即P操作和V操作),这是荷兰计算机科学家Edsger W. Dijkstra提出的信号量机制的一部分。 首先,我们需要理解什么是进程同步和互斥。进程同步是指多...

    Java实现PV操作pv java二次开发

    Java实现PV操作pv java二次开发

    操作系统作业 (pv,作业管理,等5个的Java实现)

    在Java中,可以使用synchronized关键字和wait()、notify()方法来实现类似的功能,但Java并没有直接提供PV操作的原语。 接下来,作业管理是操作系统的重要职责之一,它涉及到作业的提交、调度、执行、终止等过程。在...

    JAVA 统计网站的访问量PV,UV

    这里我们主要探讨如何使用Java,Spring框架以及MySQL数据库来实现对网站的PV(页面浏览量)和UV(独立访客数)的统计。首先,我们需要了解这两个概念: 1. PV(页面浏览量):每次页面加载或刷新都会被计算为一次PV...

    惊现支撑1亿pv/天的超级数据库解决方案

    舍得网支撑1亿pv/天构架,开源了 说是支持1亿pv/天,也许有点夸张,也是为了吸引您能点进来,如果您能认真看完相信也不会让您失望,当然,肯定有很多“高手”会对此会嗤之以鼻,没关系,有很多眼高手低的人总喜欢...

    太阳能PV_T系统电热输出性能及其Matlab仿真研究.pdf

    太阳能光伏/热(PV/T)系统是一种将光伏电池产生的电能与热量结合起来的复合型能源转换设备。这种系统的创新之处在于通过一个集成设备将太阳能的光热和光电转换结合在一起,从而提升太阳能的整体利用效率。 在介绍...

    7.rar_HYBRID MPPT_PMSG wind_pv with grid _pv/wind_wind pv

    标题中的“7.rar_HYBRID MPPT_PMSG wind_pv with grid _pv/wind_wind pv”揭示了我们讨论的主题是关于一个混合能源系统,该系统整合了风能和光伏(太阳能)发电,并且与电网连接。其中,MPPT代表最大功率点跟踪...

    pv操作实现前驱图

    PV操作实现前驱图 PV操作是指通过使用信号量来实现进程之间的同步和通信。PV操作主要用于解决进程之间的同步问题,使得多个进程能够安全地共享资源。 在PV操作中,我们使用两个操作:P操作和V操作。P操作是指等待...

    res.rar_PV hybrid_PV/Wind/Battery_fuzzy battery matlab_pv wind a

    Hybrid PV-wind generation shows higher availability as compared to PV or wind alone. For rural electrifications, researches are focused on hybrid power system which provides sustainable power. The ...

    屌丝程序员如何打造日PV百万的网站架构

    屌丝程序员如何打造日PV百万的网站架构

    pv操作的实现

    在操作系统领域,PV操作,即P(Wait)和V(Signal)操作,是荷兰计算机科学家Edsger Dijkstra提出的同步原语,用于解决多进程之间的同步问题。它们是基于信号量(Semaphore)机制的一种实现,主要用于管理共享资源,...

    pc服务器巡检检查模版.pdf

    ### pc服务器巡检检查模版知识点详解 #### 一、主机设备相关信息 - **资产编号**:用于唯一标识每一台服务器的编号,便于管理和追踪。 - **设备厂商型号**:服务器的具体型号及其制造商,这对于获取官方支持和服务...

    PV操作的实现(源代码+报告)

    - 在网络服务器中,PV操作可以帮助管理连接池,确保不会同时打开过多的连接。 5. PV操作的限制与改进: - PV操作可能导致死锁,例如当多个进程互相等待对方释放资源时。因此,合理设计同步策略和使用PV操作至关...

    PV_Wind_operation-.rar_PV/Wind/Battery_wind、pv_风光matlab_风光互补_风光互

    风光互补最优运行的电力系统程序,可以确定风机、PV组件和蓄电池的最优组合

    C语言实现pv操作演示程序

    在"C语言实现pv操作演示程序"中,可能包括以下内容: 1. **信号量数据结构**:通常用整型变量表示,初始化为非负值,代表资源的数量或者同步条件的状态。 2. **P操作函数**:定义一个函数,参数为信号量,内部实现...

    c++模拟PV实现小程序

    c++模拟PV实现小程序

    K8S持久化存储(亲测可用)【volumes PV/PVC StorageClass】

    方式2:Pod + PersistentVolumeClaim(PV) + PersistentVolume(PVC) + NFS 方式3:Pod + PersistentVolumeClaim(PV) + StorageClass + NFS 博客地址(readme):...

Global site tag (gtag.js) - Google Analytics