Confluence 6 高级性能诊断
请在你的系统服务请求中包括下面所有的信息,如果可能的话,你也可以在请求中包括你认为最有可能出现的问题。这样的话,可以避免我们进一步对你系统的问题进行询问。
系统信息
Confluence 服务器
- 你系统信息的屏幕截图 Confluence's
Administration → System Information
(或者将页面保存为 HTML 文件) - 系统缓存状态的屏幕截图 Confluence's
Administration → Cache Statistics
(或者将页面保存为 HTML 文件) - 找到你 Confluence 运行服务器的硬件配置信息
- 有几个 CPUs?CPU 的型号是什么,有多少 MHz?
- 你的服务器上装了多少内存?
- 在 Confluence 的 JVM 使用了多少服务器的内存?(例如在 JVM 中 -Xmx 和 -Xms 的设置)
- 在同样的服务器上,你还运行了一些其他的什么服务?
Confluence 内容
- 在你的 Confluence 中有多少注册用户?
- 在通常的情况下,你的用户会属于多少用户组?
- 在你的 Confluence 服务器中有多少空间(全局和个人用户)?
- 平均来说对一个用户可以查看到多少空间?
- 在i的 Confluence 中有多少页面(你可以在你的数据库中执行下面的 SQL 来进行查看:'
select count(*) from content where prevver is null and contenttype = 'PAGE'
) - 在 Bandana 中存储了多少数据(通常被插件来使用存储数据)?(你可以在你的数据库中执行下面的 SQL 来进行查看:'
select count(*), sum(length(bandanavalue)) from bandana
')
数据库
- 你 Confluence 服务器使用的数据库的版本?
- 你 Confluence 访问数据库服务器使用的 JDBC 版本?(针对一些数据库,数据库驱动的 JRA 中中版本的版本号)
- 你的数据库与 Confluence 服务器是否在同一个服务器上?
- 如果数据库服务器和 Confluence 服务器在不同的服务器上,那么网络配置是怎么样的?
- 有关数据库连接细节是什么?数据库的连接池有多大?如果你使用的是标准配置,你可以在 _cfg.xml 文件中找到这个配置信息。如果你使用的是数据源信息,那么这个信息将会存储在你应用服务器上的配置文件中。请获得这些配置信息。
用户管理
- 你当前正在使用的用户管理或授权?(例如,Jira 或者 LDAP 用户目录或者单点登录)
- 如果你使用的是外部 JIRA 用户管理,那么在 Confluence 和 JIRA 之间的数据库是如何进行配置的?
- 如果你使用的是 LDAP 管理:
- 有关 LDAP 服务器的版本是什么?
- LDAP 服务器和你的 Confluence 应用之间的配置是什么样的?
诊断
观察到的问题
- 那个页面存在载入缓慢?
- 如果是一个特定的 WIKI 页面,请将这个 WIKI 页面中的源代码也同时提交
- 这个页面总是载入缓慢还是偶尔载入缓慢?
监控数据
在进入发现一个单独的问题的时候,对理解多个性能问题会有所帮助。我们将会处理突然的的高负载,或者缓慢增加的负载,或者有可能是某一种特定情况下的负载情况(每天,每周,甚至每个月),这些请求的增加将会对系统性能造成多大的影响?对系统进行一些持续的监控将有助于你对系统的负载情况进行更多的了解。
下面是一些有关 confluence.atlassian.com 系统的负载情况,显示如下
负载
这个图片显示了连续 2 天中的系统负载情况。这个图片显示了正常的系统负载,这个负载的产生通常是因为用户的活动而产生的,这个没有显示出系统目前没有遇到主要的问题。
增加数据库连接的线程
Java 活动线程数量
有 2 个图片将会显示应用服务器中线程活动数量(第一个图片)和数据库中连接池的大小(第二个图片)。你可以看到突然的系统线程增加将会导致数据库服务器的连接的增加。
数据库连接池大小
数据库连接池的最高值已经超过了 112。这个已经超过了默认的数据库的连接配置(100)。当这个情况出现时候,你在使用 Confluence 的时候出现一些访问的缓慢就不奇怪了。一些用户可能会遇到系统崩溃的信息,因为一些用户的请求不能获得数据库连接。
我们可以通过这些图片很容易的找到我们系统配置的一些问题。这些问题不是非常重要的问题,因为你可以通过简单的增加数据库连接来解决。
我们对 Confluence 进行一些持续的监控(我们使用 Hyperic),如果你在遇到问题的时候能够同时发送你系统的一些监控信息,这个将更有助于帮我们找到你的问题。
访问日志
- How to Enable User Access Logging,包括有了如何将日志导出为一个独立文件的相关信息。
- 你可以将这些对这些文件进行分析,例如 AWStats,或者手动查看那些页面在载入的时候存在载入缓慢。
属性和日志
- 启用 Confluence 的自带的属性和性能分析,请参考页面 Troubleshooting Slow Performance Using Page Request Profiling 中的内容。
- 如果只是一个单一的页面相应缓慢,你应该对这个页面进行一系列的请求
- 如果性能问题是间歇性的出现,或者只是直观的感觉到了系统相应缓慢,你可以使性能监控功能保留监控 30 分钟到一个小时来获得更多有关的信息。
- 找到 Confluence 的标准输出日志(在日志中将会保留上面的数据)。将整个日志目录进行压缩。
- 在系统出现反应缓慢的时候进行 Take a thread dump。
CPU 负载
- 如果你遇到了 CPU 的负载率很高的话,请 install the YourKit profile 然后将 CPU 进行监控的时候附加上 2 个 profiler 的导出。如果 CPU 的查看足够长的话,请间歇 30 到 60 秒进行 profiles。最通常的的 CPU spikes 应该是操作系统的虚拟机。
- 如果 CPU 的使用率高达 100%,请尝试使用 Live Monitoring Using the JMX Interface,在一些情况下也可以使用 Top threads plugin。
站点指标和脚本
- 对你安装实例了解用户的访问和使用也是非常重要的。请使用 Access Log Scripts 和 sql scripts 来为你的示例创建状态情况。
下一步
在 https://support.atlassian.com 中打开问题提交请求,然后将你收集的所有数据添加到你需要的请求中。这个将会给我们对你系统进行诊断所需要的足够信息,我们可以根据你提交的信息对你的系统性能进行诊断。当你创建完成问题后,请对你创建的问题进行跟踪。
https://www.cwiki.us/display/CONF6ZH/Requesting+Performance+Support
Confluence 6 高级性能诊断的更多相关文章
- 阿里数据库性能诊断的利器——SQL执行干预
概述 在业务数据库性能问题诊断中,如果发现一个业务性能很差跟某个SQL有关,应用连接池几乎被该SQL占满,同时数据库服务器上也不堪重负.此时情况很紧急,业务改SQL重发布已经来不及了,运维能选择的操作 ...
- 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断
概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...
- 性能计数器与profiler的组合性能诊断
性能计数器和sql profiler都是常用的性能诊断工具和优化工具,最近和群友聊天发现很多人竟然不知道这两个可以“组合”使用,所以这篇算是一篇扫盲贴吧. 两种工具简述 通过计数器可以收集两部分内容: ...
- 60,000毫秒内对Linux的性能诊断效的方法
转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0225/168.html?1456484140 60,000 毫秒内对 Linux 的性能诊断 当你 ...
- 使用vs自带的性能诊断工具
visual studio是个强大的集成开发环境,内置了程序性能诊断工具.下面通过两段代码进行介绍. static void Main( string[] args) { Test1(); Test2 ...
- 关于UtilTimerStack类的使用--XWork2、Struts2内置性能诊断类
关于UtilTimerStack类的使用--XWork2.Struts2内置性能诊断类 一.UtilTimerStack做什么用的? 这个本来是Xwork2(Struts2的核心)的相关的工具类,可以 ...
- Confluence 6 缓存性能示例
有关 Confluence 的缓存性能如何设置,让我们看看下面的表: 缓存(Caches) % 使用的缓存(Used) % 有效率(Effectiveness) 对象/大小(Objects/Size) ...
- [翻译]60,000毫秒内对Linux进行性能诊断
原文链接:http://techblog.netflix.com/2015/11/linux-performance-analysis-in-60s.html 原文作者:Brendan Gregg,L ...
- [C#] 网站程序ASP.NET的性能诊断 - CPU分析
微软提供了标准的CLR性能分析类库 https://github.com/Microsoft/clrmd 这个类库是开源的代码.能够获取CLR runtime里面几乎所有的信息. 如何获取clrmd编 ...
随机推荐
- ubuntu16.04安装nvidia驱动及CUDA+cudnn
网上查了资料,装好了,参照以下 https://blog.csdn.net/zhang970187013/article/details/81012845 https://blog.csdn.net/ ...
- js call使用
call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, [,.argN ...
- SpringBoot学习笔记<一>入门与基本配置
毕业实习项目技术学习笔记 参考文献 学习视频 2小时学会Spring Boot:https://www.imooc.com/learn/767 学习资料 SpringBoot入门:https://bl ...
- Python 获取文件中最长行的长度和最长行
1, 使用文件 #vim /etc/motd "1 hello world" 2 ...... yes 3 no you are a shadiao 4 hahh maye you ...
- 转载-HashMap1.7源码分析
原文地址-https://www.cnblogs.com/chengxiao/p/6059914.html HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重 ...
- 5-8套接字socket
socket概念 socket层 理解socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协 ...
- es集群数据库~原理细节
ES原理一 基本定义 index(索引) 相当于mysql中的数据库 type(类型) 相当于mysql中的一张表 document(文档) 相当于mysql中的一行(一条记录) fie ...
- Android插件化技术简介
https://blog.csdn.net/io_field/article/details/79084630 可以通过反射 事先定义统一接口的方式,访问插件中的类和方法 还可以在AndroidMan ...
- MySql delete和truncate区别
项目 delete truncate 添加where条件 可以添加 不可以添加 执行效率 略高 高 自增长列 delete删除后,插入数据的自增长 列值从断点开始 truncate删除后,插入数据的自 ...
- .NET中制做对象的副本(一)
.NET中对于复杂对象制作副本比较困难,闲暇之时写了这个方法,和大家分享. 本案例用于大型对象的副本制作,常见的应用场景就是树形对象节点的拷贝,但是也有局限性,目前使用于类里有基本类型(int sti ...