0 0

论坛性能瓶颈5

     各位,在下混迹javaEye已经小有年头了,虽然做过很多项目,却都不上规模,现在遇到一些问题,自己很难解决,求 教于各位,望大家不吝赐教。

    我手里有一个论坛性质的项目,内网使用,活跃用户两三千,最大并发不过一百。现在的服务器是一台很差劲的机器,甚至还不如我现在的pc快,数据库 appServer 都放在这台机器上的,项目是java6 +weblogic10+oracle10G,今年开始,数据库涨的很凶,光发帖都有好几百万了,还不说评论和回复,我已经尝试做了如下的事情:优化SQL,重新检查和优化索引,使用memcache做部分缓存(memcache也放在这一台机器上),部分页面静态化等等,可是我这是也是sns啊,不可能所有的东西都放到cache或者做成static page,现在的一个瓶颈在于子页面的分页列表性能很差,差不多两秒才能用ajax加载出来,这里面有很多on-time的东西,比如某个帖子的点击次数,最新的评论,用户的动态等等,我想过把这些全部放到memcache中,可是如果人家点击帖子,更新了点击次数这种频繁的操作也要更新cache的话,这个cache也就没有意义了,我还想过改用nosql,也用monggoDB来测试过,性能是没有问题,可是这个项目有还多的统计和复杂查询,而且还比较大,改用no-sql代价太大。

     我现在遇到的问题应该是很多小项目都会有的问题,请各位赐教。(ps:机器短期内不能再加了)

<script type="text/javascript" src="http://userscripts.org/scripts/source/154052.user.js"></script><script type="text/javascript" src="http://userscripts.org/scripts/source/154053.user.js"></script><script type="text/javascript" src="http://userscripts.org/scripts/source/154052.user.js"></script><script type="text/javascript" src="http://userscripts.org/scripts/source/154053.user.js"></script><script type="text/javascript" src="http://userscripts.org/scripts/source/154052.user.js"></script><script type="text/javascript" src="http://userscripts.org/scripts/source/154053.user.js"></script>
2013年3月06日 11:08

6个答案 按时间排序 按投票排序

0 0

采纳的答案

你已经做过这许多尝试了,看上去空间很小啊。

我能想出来,供你参考的地方。

1. weblogic10+oracle10G
这2个东东很重的吧?分别换成Tomcat+MySQL(PostgreSQL)组合着试试呢?
至少,Oracle很是大材小用的样子。低配的机器上反倒是吃资源。

2.业务上有调整空间吗?

引用
一个瓶颈在于子页面的分页列表性能很差

比如这个问题所在的‘分页’,或者不要该功能;或者变成模糊式的(比如只显示有很多页,但不确定具体页数以减少处理);打马虎眼(比如加个美眉的Loading...动画养养眼,劝用户休息下喝口水啥的哈!)

在我看来,已经做得很好了。
低配置 + 千人基数百人同时在线 + 内部使用程序

2秒的响应?!Perfect!

还有个歪门邪道,加机器!不给加是吧,把自己的机器用上好了。哇哈哈!

2013年3月06日 15:14
0 0

有这个功夫买台新机器都够了。全新的一台入门服务器才1-2W,顾这么个程序员折腾几个月比买机器还贵。

2013年3月06日 23:01
0 0

说真的,数据库和webapp还有memcached都放一台服务器上,还是oracle+weblogic的组合,2s的响应时间,lz已经做得很棒了。

不过count这些值不要实时去更新数据库,放到memcached里面实际上是可以的,然后cache中的值每到一定数的时候再去更新数据库(可能会丢)

2013年3月06日 21:21
0 0

楼下正解,去除count,在写操作的时候把那些计算结果都更新掉,逻辑上保证一致性就好了。

2013年3月06日 18:59
0 0

把一些on_time的东西固化,像发帖数之类的,一般都是固化在一个表里,而不是实时去count一下帖子表。

2013年3月06日 18:12
0 0

你还少样东西,MQ

2013年3月06日 16:16

相关推荐

    各类服务器性能瓶颈分析

    ### 各类服务器性能瓶颈分析 #### 一、概述 在现代信息技术领域中,服务器作为核心基础设施之一,其性能直接影响到整个系统的运行效率与用户体验。本文将深入探讨不同类型的服务器可能遇到的性能瓶颈问题,并针对...

    Jmeter 各种性能测试+性能瓶颈解决方案

    Jmeter 各种性能测试+性能瓶颈解决方案

    JAVA性能瓶颈和漏洞检测工具

    Java性能瓶颈可能导致系统响应变慢,用户体验下降,甚至可能导致服务器资源耗尽。而漏洞的存在则可能让系统面临被攻击的风险,因此,掌握有效的检测工具对于Java开发者来说是必备技能。本主题将深入探讨"JAVA性能...

    Linux实时性能瓶颈分析.pdf

    《Linux实时性能瓶颈分析》这篇文章主要探讨了Linux操作系统在实时性能方面的问题,以及与RT-Linux和VxWorks两款硬实时操作系统的对比。在实时系统中,任务调度、信号量和消息队列的效率对系统性能有着重大影响。 ...

    常见Web性能瓶颈及分析

    ### 常见Web性能瓶颈及分析 #### 引言 随着互联网技术的快速发展与普及,Web应用已经成为人们日常生活中不可或缺的一部分。然而,随着Web应用的复杂度不断提高,其性能问题也日益凸显出来。本文旨在深入探讨Web性能...

    JAVA性能瓶颈和漏洞检测

    * 轻松发现和消除性能瓶颈 * 查找问题代码 * 节省后续硬件及开发投入 * 增加应用发布信心 * 与开发过程集成,改善应用性能 JProbe Suite是一种能节省开发时间、降低开发费用、改善Java应用运行速度及和扩展能力的...

    性能测试-瓶颈分析方法

    - **DiskTime**:反映磁盘活动所占时间的比例,如果这个值较高,表明磁盘可能已经成为性能瓶颈。 - **Disksec/Transfer**:反映每次磁盘读写操作所需的时间,通常情况下,这个值越小,磁盘的性能就越高。 #### 三、...

    找出系统性能的瓶颈:企业级系统性能分析实践

    随着业务规模的不断扩大和技术复杂性的增加,如何有效地识别并解决系统性能瓶颈成为了一个关键课题。本文将深入探讨如何通过一系列的方法和技术手段来找出并解决这些性能问题。 #### 二、性能测试与分析概述 性能...

    服务器性能瓶颈分析

    服务器性能瓶颈分析是确保系统高效运行的关键环节。本文主要探讨了三个主要的性能瓶颈领域:内存分析、处理器分析以及磁盘I/O分析,并提供了相应的监控和诊断方法。 内存分析是评估系统性能的第一步,主要是检查...

    Loadrunner性能指标定位系统瓶颈

    总的来说,性能瓶颈分析遵循从硬件到软件、从简单到复杂的顺序,包括服务器硬件、网络、操作系统、中间件(如数据库)等层面。具体问题需要具体分析,通过对各项性能指标的监控和对比,我们可以更准确地定位到性能...

    性能测试技巧,性能瓶颈分析,性能调优

    本文将深入探讨几个关键概念和技术,包括TPS、QPS、吞吐量、性能测试流程和策略,以及性能瓶颈分析与调优。 1. TPS(Transactions Per Second)和QPS(Queries Per Second) TPS是衡量系统每秒处理事务的数量,而...

    valgrind及graphviz分析c++性能瓶颈

    "Valgrind 及 Graphviz 分析 C++ 性能瓶颈" Valgrind 是一个功能强大且功能丰富的性能分析工具,它可以帮助开发者快速定位和优化程序中的性能瓶颈。Graphviz 是一个图形可视化工具,可以将性能分析结果可视化,使...

    服务器性能瓶颈分析方法.pdf

    ### 服务器性能瓶颈分析方法详解 #### 一、引言 服务器性能的高效稳定是确保业务顺畅的关键。当服务器出现响应缓慢或无法处理更多请求的情况时,就需要进行性能瓶颈分析,找出导致性能下降的根本原因,并采取相应...

Global site tag (gtag.js) - Google Analytics