关于java Web响应时间的优化问题?
项目使用了SSH框架,服务器是tomcat。。服务端配置 i7 64位win7 8G内存。服务端CUP没有满过。最高峰也只是70%左右。在
跑1000个并发模拟客户端请求线程
的时候,最快响应时间是50毫秒,最长响应100000毫秒(100秒),平均响应时间需要20000毫秒,平均响应时间太长了。请问该怎么优化服务端呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
出现很奇怪的情况,用Jmeter压力测试。登录,注册可以单独并发,登录以后的操作必须先登录。发现有时候特别快,几十毫秒或者几百毫秒,有时候特别慢,要接近10秒,都是1000线程并发。
回复
推荐使用apache ab
并发量大的话,一般瓶颈出在数据库,外部接口。
你可以看看你的逻辑之间是不是带了资源竞争,耗费你时间的可能不是应用程序,而是数据库和网络
回复
如果对于负载有一定的要求,OS和tomcat是一定要做优化的。我对于WINDOWS的SERVER优化经验很少,一般都是用WINDOWS在做开发,LINUX做SERVER。就LINUX来说,如果要上线,最起码要对ulimit和网络进行优化的,其次,tomcat至少不要用BIO。其实最好用APR。数据库方面需要优化的也多,比如innodb的缓存,日志写入方式等。
回复
当然,最重要的是,首先你还是得找到瓶颈在哪里。否则说这些都是空谈。具体的方法。无非就是想办法测试一下数据库的CRUD返回速度,在看看JAVA代码的执行速度。找到慢的地方再说了。
回复
另外还有就是JVM的配置。需要看一下GC的频率和每次GC的时间。
回复
出现很奇怪的情况,用Jmeter压力测试。登录,注册可以单独并发,登录以后的操作必须先登录。发现有时候特别快,几十毫秒或者几百毫秒,有时候特别慢,要接近10秒,都是1000线程并发。
回复
突然卡顿,很有可能是GC造成的。建议看看GC次数,每次GC时间。
1. Tomcat 用的BIO还是NIO还是APR?
2. 有没有文件读写IO操作?
3. 用了HIBERNATE?那么数据库是什么?MYSQL还是其他?INNODB还是MYISSM?连接池用的什么?
4. 性能瓶颈是处于上面的哪一层?