- 博客(13)
- 问答 (2)
- 收藏
- 关注
原创 Linux系统监控:nicstat
简介分布式Java应用的性能和扩展性受限于网络带宽或网络I/O的性能。举例来说,如果发送到系统网络接口硬件的消息量超过了它的处理能力,消息就会进入操作系统的缓冲区,这会导致应用延迟。此外网络上发生的其他状况也会导致延迟。 NAME nicstat, enicstat - print network traffic statistics 网络传输统计数...
2014-12-06 14:44:44
367
原创 Linux系统监控:iostat
简介 对于有磁盘操作的应用来说,查找性能问题,就应监控磁盘I/O。其中磁盘I/O使用率是最有用的监控数据。磁盘I/O使用率,即磁盘处于活动时间的百分比,磁盘在数据传输和处理命令(如寻道)时处于活动状态。磁盘利用率与资源争用程度成正比,与性能成反比。也就是说磁盘利用率越高,资源争用就越严重,性能也就越差,响应时间就越长。一般来说,如果磁盘利用率超过 70%,应用进程将花费较长的时间...
2014-12-06 14:41:51
210
原创 Linux系统监控:pidstat
简介:Linux上可以使用sysstat包(可能需要自己安装)中的pidstat监控JAVA应用的让步式上下文切换和抢占式上下文切换。让步式上下文切换是指执行线程主动释放CPU,抢占式上下文切换是指线程因为分配的时间片用尽而被迫放弃CPU或被其他优先级更高的线程所抢占。应用中挂起和唤醒线程会导致操作系统的让步式上下文切换,因此锁竞争严重的应用会表现出大量的让步式上下文切换,而让步式上下...
2014-12-06 14:39:32
330
原创 Linux系统监控:vmstat
简介:vmstat命令可以查看当前运行JAVA程序的Linux系统的CPU使用率、CPU调度程序运行队列的长度以及内存使用率(包括内存使用情况、是否存在内存交换等)。 使用方法:vmstat 1 5:1秒采集一次,共采集5次vmstat 1:一秒采集一次,直到结束程序vmstat -s:显示内存的详细信息vmstat -d 1 5:显示磁盘的详细信息 输出示...
2014-12-06 14:36:44
178
原创 Servlet3.1规范笔记
1、WEB服务器和Servlet容器servlet容器的主要任务是管理servlet的生命周期。而你说的web容器更准确的说应该叫web服务器,它是来管理和部署web应用的。还有一种服务器叫做应用服务器,它的功能比web服务器要强大的多,因为它可以部署EJB应用,可以实现容器管理的事务,一般的应用服务器有weblogic和websphere等,它们都是商业服务器,功能强大但都是收费的。w...
2014-09-24 19:27:58
207
原创 一步一步想Java动态代理
版本一试着只去看API,根据自己的理解,写出了Java动态代理的第一个版本publicclass DynamicProxyTest { publicstaticinterface IWorker { public String work(); } publicstaticclass Worker implements I...
2014-09-24 19:19:22
147
原创 Java加载资源文件的方法
一、通过Class:getResource()加载资源通过Class类的public java.net.URL getResource(String name)public java.net.URL getResource(String name) { name = resolveName(name); ClassLoader cl = ge...
2014-09-15 17:44:01
336
原创 Java安全管理器SecurityManager
一、JavaDoc如是说安全管理器是一个允许应用程序实现安全策略的类。它允许应用程序在执行一个可能不安全或敏感的操作前确定该操作是什么,以及是否是在允许执行该操作的安全上下文中执行它。应用程序可以允许或不允许该操作。 SecurityManager 类包含了很多名称以单词 check 开头的方法。Java 库中的各种方法在执行某些潜在的敏感操作前可以调用这些方法。对 check 方...
2014-09-12 13:57:01
451
原创 Java Pattern Matcher的使用
前言下面的实例均以查找以$开头的变量为例1、判断是否匹配?Pattern variablePattern = Pattern.compile("^\\$\\w+$");String s = "$abc";Matcher matcher = variablePattern.matcher(s);System.out.println(matcher.matches...
2014-09-08 12:48:19
450
原创 Java线程池的使用
一、线程池的使用1.创建线程池Java线程池的实现是java.util.concurrentThreadPoolExecutor类。先看该类的构造函数,该类提供了4个构造函数,但最终都调用了参数最多的一个,也就是说如果你选择其他的构造函数,某些值会使用默认值。我们看最复杂的一个构造函数:public ThreadPoolExecutor(intcorePoolSize, ...
2014-09-08 12:17:13
156
原创 Java引用详解
一、对象可达性Java虚拟机有5个不同级别的对象的可达性。●强可达(Strongly reachable)如果一个对象可以被一些线程直接使用而不用通过其他引用对象(reference objects),那么它就是强可达。一个新创建的对象对创建它的线程来讲就是强可达的。这是我们知道并且一直在使用的引用类型(译注:通常被new出来的对象都是强可达的,他们的引用就是强引用)。任何通过...
2014-08-20 21:08:49
277
ZooKeeper初探
以下文字大部分翻译自ZooKeeper官方文档,然后进行了知识归类,如有错误,欢迎指正一、ZooKeeper部署1、集群数目如果你想构建可靠的集群系统,至少需要3台zookeeper服务节点。我们推荐在线生产环境使用5台服务器;这样你可以停掉一台服务器(例如升级),并且在剩下的服务器中某一台由于未知原因宕机后仍然可以提供服务。增加zookeeper服务器的数目,会造成写性能下...
2014-07-29 09:39:37
211
原创 ZooKeeper初探
一、ZooKeeper部署1、集群数目如果你想构建可靠的集群系统,至少需要3台zookeeper服务节点。我们推荐在线生产环境使用5台服务器;这样你可以停掉一台服务器(例如升级),并且在剩下的服务器中某一台由于未知原因宕机后仍然可以提供服务。增加zookeeper服务器的数目,会造成写性能下降,以及读性能的大幅上升。写性能下降的原因是每个写操作都需要至少半数的节点投票确认。为解决上
2014-07-24 14:35:33
599
空空如也
线程池数目和数据库连接数的关系
2014-10-11
关于Java ThreadLocal的疑问
2014-08-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人