探查器需要java_java – 当探查器无法收集样本时,如何调试无响应的服务器?
我一直在处理我写的服务器的问题.它在Clojure中,但我认为这并不重要,我们可以假装它是用
Java编写的.无论如何,它一次可以正常工作几个小时,但是在它表现非常糟糕的情况下进入适合:所有活动停止,大约十五秒,然后它正常工作几秒钟,然后停止十五秒……等等(通常)大约十分钟左右,然后恢复正常行为.
我用YourKit做了很多分析,我排除了一些看似合理的嫌疑人:
>这不是垃圾收集问题:我正在使用-XX:UseConcMarkSweepGC运行它,并且我已经验证了服务器在次要和主要集合期间继续运行正常,因为这个垃圾收集器的并发性质.当我们耗尽总内存或其他东西时,我们并没有挣扎:当前堆大小远低于其最大值.
>我不认为这是一个锁定/同步问题,但我不是百分百肯定的. YourKit分析器有时会显示等待的线程,例如通过锁定来竞争System.out以生成日志消息,但是当没有任何事情要做时,唯一的长等待是线程池中的工作线程.当然,YourKit说它从来没有发现任何死锁.
>这不是因为连接了探查器而引起的,因为即使我启动服务器然后在没有连接探查器的情况下单独使用它仍然会发生.
>这不是系统占用所有CPU时间的其他过程:top表示我的java进程的CPU使用率为100%,其他所有内容的CPU使用率基本为0%.
我最大的问题是,在这些奇怪的问题中我无法看到服务器正在做什么,因为探查器停止接收样本.这是CPU使用率图表的图表:
图的左侧是正常操作,在此期间我们每隔一秒左右获得一次探查器样本.右侧是“破碎的”,并且非常尖刻,因为探测器每10秒左右才会获取样品.在它确实获得的样本中,服务器似乎正在做其通常的业务:响应请求等等;并且日志确认它正在做正常的事情,但仅在探查器有样本的时候:在图表上向上倾斜的“直线”期间,探查器没有样本,服务器什么都不做.
那么,这个图表对任何人来说都很熟悉吗?你以前遇到过这个问题并修好了吗?或者你能指出一个工具的方向,可以找出我的服务器在YourKit不能做的时候做了什么吗?如果它很重要,服务器机器正在运行Ubuntu 10.04,和
$java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.10) (rhel-1.28.1.10.10.el5_8-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
探查器需要java_java – 当探查器无法收集样本时,如何调试无响应的服务器?相关推荐
- 解析器 java_Java高性能解析器实现思路及方法学习
当你必须自己实现一个解析器时,你对它的期望会有很多,包括性能良好.灵活.特性丰富.方便使用,以及便于维护等等.说到底,这也是你自己的代码.在本文中,我将为你介绍在Java中实现高性能解析器的一种方式, ...
- Python 闭包、单个装饰器、多个装饰器、装饰器修饰类、应用场景
1. 闭包 在 Python 中,函数也可以作为参数.我们可以执行下面的代码: def func(a, b):return a + bprint(func) 我们直接输出函数名,而没有加括号.输出结果 ...
- C++——包装器std::function与绑定器std::bind
C++--包装器std::function与绑定器std::bind 1.可调用对象的包装器 std::function是可调用对象的包装器.它是一个类模板,可以容纳除了类成员(函数)指针之外的所有可 ...
- java 扩展类加载器_java实现自定义类加载器
各类加载器虽然以父子相称,但是没有继承关系 (视频教程推荐:java课程) 点入ClassLoader的源码查看样例:* * class NetworkClassLoader extends Clas ...
- python装饰器与闭包_Python 装饰器和闭包
Python 装饰器和闭包 装饰器是 Python 中常见的语法糖,这篇文章讲了闭包和装饰器的原理,并且分析了函数中变量的作用域,以及尝试总结了常见的坑. 装饰器基础 首先来看看装饰器的定义:装饰器本 ...
- python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景
装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...
- python装饰器实例-Python函数装饰器--实例讲解
一.装饰器定义: 1.装饰器的本质为函数: 2.装饰器是用来完成被修饰函数的附加功能的 所以:装饰器是用来完成被修饰函数附属功能的函数 装饰器的要求: 1.不能修改被修饰函数的源代码: 2.不能更改被 ...
- python装饰器-Python基础-20装饰器
20.装饰器 20.1 函数基础知识 在Python中函数为一等公民,我们可以: 把函数赋值给变量 在函数中定义函数 在函数中返回函数 把函数传递给函数 20.1.1 把函数赋值给变量 在Python ...
- python中的装饰器有哪些-python 装饰器以及开发中常用的例子
有时候我们想为多个函数,同意添加某一种功能,比如及时统计,记录日志,缓存运算结果等等,而又不想改变函数代码 那就定义装饰器函数,用它来生成一个在原函数基础添加了新功能的函数,代替原函数 参考金角大王的 ...
最新文章
- 【spring】使用spring的环境配置及从官网获得配置文件所用代码的方法
- struts上传文件 血案
- 架构——大师言语汇总
- 【错误记录】Android 低版本使用分区存储错误 ( 低版本存储不得使用 MediaStore )
- 基于Java的全文索引
- Java---报错The type List is not generic; it cannot be parameterized with arguments <Role>==List打包错误
- 【sdut 1751】 区间覆盖问题
- C++基础01-C++对c的增强
- origin 修改水平坐标的刻度
- 招博后,比利时鲁汶大学 A2H 部计算机视觉动物行为分析方向
- [Oracle]如果误删了某个数据文件,又没有被备份,能否恢复?
- 21天jmeter打卡day5-完成对www.baidu.com的两条接口测试
- pythoncsv格式清洗与转换_Python中 CSV格式清洗与转换的实例代码
- 赤兔安卓版语音图片资料处理
- 安装activesync同步时遇到的问题
- 服务器 虚拟软驱,virtual floppy(虚拟软驱)命令行版本
- html中tab键的用法,利用Tab键快速创建html
- php仿maka,iH5和MAKA哪个好?
- Linux下只允许用户远程scp
- 石墨笔记,为知笔记和Effie哪个更适合采编?