
性能优化
文章平均质量分 81
iteye_2005
这个作者很懒,什么都没留下…
展开
-
Linux查看连接数,并发数
1、查看apache当前并发访问数: www.2cto.com netstat -an | grep ESTABLISHED | wc -l 对比httpd.conf中MaxClients的数字差距多少。 2、查看有多少个进程数: ps aux|grep httpd|wc -l 3、可以使用如下参数查看数据 server-status?au...原创 2013-08-08 02:31:11 · 142 阅读 · 0 评论 -
转 探索 ConcurrentHashMap 高并发性的实现机制
简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型。同时,ConcurrentHashMap 的源代码会...原创 2013-08-14 10:16:36 · 122 阅读 · 0 评论 -
jstat使用方法
用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序...原创 2013-08-14 15:15:15 · 230 阅读 · 0 评论 -
Linux下高效的使用 top 命令
对桌面用户来说,监视系统资源使用是一项重要的工作。通过这项工作,我们可以找到系统瓶颈所在,针对性的进行系统优化,识别内存泄露等。问题是,我们应该用什么软件,以及如果针对我们的需求使用它。 在众多备选的监测工具中,多数人使用“top”(procps 包的一部分)。Top 提供了几乎可以说是所有的我们所需要的系统资源使用监测,就在这一个软件中。本文中的所有信息都是基于运行在 Linux 2....原创 2013-08-14 15:33:14 · 187 阅读 · 0 评论 -
Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算
可以用下面的命令将 cpu 占用率高的线程找出来: ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序。这样就可以找到占用处理器的线程了。直接使用 ps Hh -eo pid,t...原创 2013-08-14 16:13:25 · 275 阅读 · 0 评论 -
tomcat cpu占用过高,系统负载高问题跟踪
线上8核 linux服务器,负载为8为正常情况,目前CPU负载过高,最高负载30多,平均负载在20左右,已经持续近一周,具体占用CPU资源的服务是tomcat_sc,占用CPU资源高达:720%使用jconsole去跟踪更改catalina.sh 启动设置: $ CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun....原创 2013-08-15 09:53:04 · 1740 阅读 · 0 评论 -
关于vmstat,top,ps aux查看的cpu占用率不一致的问题
问题:用vmstat,top,和ps aux三个命令查看进程对cpu的占用率,数值差异很大。例:用 vmstat 查看系统cpu空闲率, id是cpu的空闲率,可以看出,空闲率一直在73%以上用 ps aux 统计两个compress进程的cpu占用率,长时间恒定在15.5%和28.9%用 top统计两个compress进程的cpu占用率,可以看出是一个动态变化的过程(命令执行结果后面有显示)...原创 2013-08-15 09:53:13 · 287 阅读 · 0 评论 -
BTrace使用简介
很多时候在online的应用出现问题时,很多时候我们需要知道更多的程序的运行细节,但又不可能在开发的时候就把程序中所有的运行细节都打印到日志上,通常这个时候能采取的就是修改代码,重新部署,然后再观察,但这种方法对于online应用来说不是很好,另外一方面如果碰到不好改的代码,例如引用的其他的外部的包什么的,就很麻烦了,BTrace就是一个可以在不改代码、不重启应用的情况下,动态的查看程序运...原创 2013-08-15 09:55:14 · 95 阅读 · 0 评论 -
BTrace使用总结
一、背景 在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据信息,我们可以通过改写代码,增加日志信息的打印,再发布到生产环境。通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部署后环境可能已被破坏,很难重新问题的场景。 二、BTrace功能 B...原创 2013-08-15 09:57:15 · 114 阅读 · 0 评论 -
最佳线程数和QPS以及RT
最近在关注性能的事情,所以对于多线程程序中,如何设置最佳的线程数,找了一些文章。虽然有公式可以套用,但是,其实最佳的话只是相对的,了解了过程之后,处理线程数的设置就会游刃有余了。名字解释:1、QPS:系统每秒处理的请求数(query per second)2、RT:系统的响应时间,一个请求的响应时间,也可以是一段时间的平均值3、最佳线程数量:刚好消耗完服务器瓶颈资源的临界线...原创 2013-08-16 09:13:29 · 314 阅读 · 0 评论 -
JAVA线程池的分析和使用
1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。...原创 2013-08-14 10:11:33 · 111 阅读 · 0 评论 -
MAT工具介绍
为什么用MAT 之前的观点,我认为使用实时profiling/monitoring之类的工具,用一种非常实时的方式来分析哪里存在内存泄漏是很正确的。年初使用了某profiler工具测试消息中间件中存在的内存泄漏,发现在吞吐量很高的时候profiler工具自己也无法响应,这让人很头痛。后来了解到这样的工具本身就要消耗性能,且在某些条件下还发现不了泄漏。所以,分析离线数据就非常重要了,MA...原创 2013-08-13 09:17:32 · 144 阅读 · 0 评论 -
Tomcat性能调优方案
一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。 【适用场景】 任何项目。 二、Java虚拟机调优 应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。 JDK1.4比JD...原创 2013-08-09 09:29:09 · 87 阅读 · 0 评论 -
Tomcat高并发配置
java 环境配置:export JAVA_OPTS="-server -Xms8g -Xmx8g -Xss128k -XX:ParallelGCThreads=20-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8-XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshol...原创 2013-08-09 09:36:50 · 108 阅读 · 0 评论 -
tomcat优化(全)
1.内存设置(VM参数调优) (1). Windows环境下,是tomcat解压版(执行startup.bat启动tomcat) ,解决办法: 修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置: set JAVA_OPTS=-Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:M...原创 2013-08-09 11:30:00 · 98 阅读 · 0 评论 -
Tomcat6 Optimize
实验条件 数据库服务器 操作系统信息 SYSTEM : Linux flume5 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 GNU/Linux 硬件配置信息 CPU : 4CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz Cache size : 12288 KB MEMORY :...原创 2013-08-09 11:31:49 · 104 阅读 · 0 评论 -
Tomcat Production Server – Performance Tuning
简介考虑一下这种场景,你开发了一个应用,它有十分优秀的布局设计,最新的特性以及其它的优秀特点。但是在性能这方面欠缺,不管这个应用如何都会遭到客户拒绝。客户总是期望它们的应用应该有更好的性能。如果你在产品中使用了Tomcat服务器,那么这篇文章就会给你几方面来提升Tomcat服务器的性能。感谢ITWorld article给本文提供资源。经过沉思我已经知道了和早期版本相比最新的T...原创 2013-08-09 11:38:45 · 98 阅读 · 0 评论 -
网站性能优化的三重境界
文章是关于网站性能优化体验的,性能优化是一个复杂的话题,牵涉的东西非常多,我只是按照我的理解列出了性能优化整个过程中需要考虑的种种因素。点到为止,包含的内容以浅显的介绍为主,如果你有见解能告知我那再好不过了。无论如何,希望阅读它的你有所收获。 我眼中的网站性能问题都反映了一个网站的“Availability”(中文叫做可用性,但是这个翻译也不足够达意),以往我的认识是,这个网站如果全部...原创 2013-08-11 10:53:46 · 96 阅读 · 0 评论 -
使用JMeter的Java请求功能测试Hetty性能
1.JMeter介绍JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的...原创 2013-08-12 17:24:45 · 107 阅读 · 0 评论 -
聊聊内存泄露
1.什么是内存泄露看到网上有很多人都在问内存泄露与内存溢出的区别(优快云上),而且后面还有一大堆的跟帖在用不同形式的语言予以解答,我看了以后思绪万千啊。内存泄露是导致内存溢出的原因之一,说他们的区别纯属无稽之谈。要解释什么是内存泄露还真是个费事的活,我用一个例子来解释下:public class Test { public static void main(String[] ...原创 2013-08-12 17:42:11 · 116 阅读 · 0 评论 -
使用TestNG进行多线程压力测试
1、在项目中加入: <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.4</version> <scope>test&am原创 2013-08-12 23:18:38 · 281 阅读 · 0 评论 -
转mysql数据库优化实践
最近一段时间,我们整理了一些关于Percona,Linux,Flashcache,硬件设备的优化经验,分享给大家:硬件1.开启BBWCRAID卡都有写cache(Battery Backed Write Cache),写cache对IO性能的提升非常明显,因为掉电会丢失数据,所以必须由电池提供支持。电池会定期充放电,一般为90天左右,当发现电量低于某个阀值时,会将写cache策略从w...原创 2013-01-23 16:05:02 · 106 阅读 · 0 评论