Posts

Showing posts from September, 2018

Confluence 6 识别慢性能的宏

Page Profiling  给你了有关页面在载入的时候操作缓慢的邪教,你可以将下面的内容添加到调试(debug)级别: Version 3.1 及其后续版本 设置包名字为  com.atlassian.renderer.v2.components.MacroRendererComponent  到 DEBUG 级别。你可以在 管理(Administration) >>  Logging and Profiling  中进行设置。 3.1 之前的版本 下载 WikiMarkupParser.class,你可以在  attachments to this page  页面中找到,生成的日志结果如下: 2009 - 04 - 23   10 : 27 : 54 , 789   DEBUG [http- 8080 - 1 ] [ atlassian.renderer.v2.WikiMarkupParser]  parse Entering macro rendering. Processed text: {spaces} 2009 - 04 - 23   10 : 27 : 55 , 768   DEBUG [http- 8080 - 1 ] [ atlassian.renderer.v2.WikiMarkupParser]  parse Exiting macro text rendering. Total time: 979ms 2009 - 04 - 23   10 : 27 : 55 , 785   DEBUG [http- 8080 - 1 ] [ atlassian.renderer.v2.WikiMarkupParser]  parse Entering macro rendering. Processed text: {create-space-button} 2009 - 04 - 23   10 : 27 : 55 , 857   DEBUG [http- 8080 - 1 ] [ atlassian.rendere...

在启用属性的情况下启动 Confluence 6

在一些情况下,你可以希望 Confluence 在系统启动的时候就对属性文件进行打印。如果你的 Confluence 经常进行重启,并且你可能忘记来启动针对系统诊断的属性文件日志开关。 编辑  CONFLUENCE_HOME\confluence\WEB-INF\web.xml  文件。你应该可以在文件中看到与下面输出内容类似的行。设置  autostart  参数为  true: <filter> <filter-name>profiling</filter-name> <filter-class>com.atlassian.confluence.util.profiling.ConfluenceProfilingFilter</filter-class> <init-param> <!-- specify the which HTTP parameter to use to turn the filter on or off --> <!-- if not specified - defaults to "profile.filter" --> <param-name>activate.param</param-name> <param-value>profile</param-value> </init-param> <init-param> <!-- specify the whether to start the filter automatically --> <!-- if not specified - defaults to "true" --> <param-name>autostart</param-name> ...

Confluence 6 属性的一个示例

Image
下面是有关 Confluence 页面被调用的前几行的访问概述。 [344ms] - /display/ds/Confluence+Overview [313ms] - SiteMesh: parsePage: http://localhost:8080/display/ds/Confluence+Overview [313ms] - XW Interceptor: Before defaultStack: /pages/viewpage.action (ViewPageAction.execute()) [0ms] - SpaceAwareInterceptor.intercept() [16ms] - PageAwareInterceptor.intercept() [0ms] - AOP: PageManager.getPage() [16ms] - AOP: PermissionManager.hasPermission() [0ms] - AOP: SpacePermissionManager.hasPermission() [16ms] - AOP: SpacePermissionManager.hasPermission() [0ms] - AOP: SpacePermissionManager.hasPermission() [0ms] - AOP: SpacePermissionManager.hasPermission() [281ms] - XW Interceptor: After defaultStack: /pages/viewpage.action (ViewPageAction.execute()) [281ms] - XW Interceptor: After validatingStack: /pages/viewpage.action (ViewPageAction.execute()) ...  注意,每一个缩进的行表示的是上一个调用下面的子调用。上面的示例中,Confluence Overview 页面调用完成耗费了 34...

Confluence 6 属性的一个活动

为了启用属性,使用 上面 描述的方法。 针对所有的用户,属性每一个访问的页面,将会在你的应用服务器中进行记录,直到你对 Confluence 进行重启。请注意每次用户访问一个链接,一个单一的属性将会被打印出来。 确定属性已经被写入到 Confluence 的日志文件中 —— 请参考  Working with Confluence Logs  页面中的内容,来对写入的日志文件和细节进行定位。 对不正常的访问缓慢确定这个问题出现的时间。 拷贝属性中的操作。为了确定哪些属性日志需要进行拷贝的时候,查找相应时间过长的链接。如果一个单一页面访问缓慢的话,那么只有这个页面的属性日志是需要的。如果 Confluence 表现的是间歇性访问缓慢或者整体访问缓慢的话,拷贝所有属性日志文件,直到对可能的访问日志完全包含。 如果 Atlassian  技术支持小组需要你对你的系统进行属性日志进行提交,你可以将你的属性日志全部提交给 Atlassian  支持小组。 使用 上面 提供的方法,关闭你的属性日志收集。 确定你的属性日志不再打印到 Confluence 的日志文件中了。 https://www.cwiki.us/display/CONF6ZH/Troubleshooting+Slow+Performance+Using+Page+Request+Profiling

Confluence 6 使用页面请求属性来对慢性能进行问题解决

Image
这个页面告诉你如何启用页面请求属性。当这个属性启用以后,你可以查看在 Confluence 任何页面完成的一个记录消耗的时间(毫秒)。如果 Confluence 反应缓慢的话,一个关于慢页面请求的内部请求时间来帮助你识别在页面中是哪些资源导致的页面载入缓慢。 你需要访问 Confluence 服务器来查看一个属性。 启用页面请求属性 如果只希望查看慢性能宏,请参考  Identifying Slow Performing Macros  页面中的内容。  你需要具有 系统管理员权限 才能启用和禁用属性。 希望启用页面属性: 在屏幕的右上角单击  控制台按钮  ,然后选择  General Configuration 链接。 在左侧的面板中选择  日志和属性(Logging and Profiling) 。 在显示的  日志和属性(Logging and Profiling) 界面中。选择  启用属性(Enable Profiling) 。  如属性已经被启用了,那么这个按钮将会被标记为 禁用属性(Disable Profiling)。 希望禁用页面属性: 在屏幕的右上角单击  控制台按钮  ,然后选择  General Configuration 链接。 在左侧的面板中选择  日志和属性(Logging and Profiling) 。 在显示的  日志和属性(Logging and Profiling) 界面中。选择  禁用属性(Disable Profiling) 。  如属性已经被禁用了,那么这个按钮将会被标记为 启用属性(Enable Profiling)。 屏幕截图:修改日志级别和属性 https://www.cwiki.us/display/CONF6ZH/Troubleshooting+Slow+Performance+Using+Page+Request+Profiling

Confluence 6 访问日志脚本

日志访问脚本在连接: https://confluence.atlassian.com/download/attachments/133267635/Atlassian-accessLogScripts.7z?version=1&modificationDate=1203314309606&api=v2  中。希望使用这个脚本: 使用 7Zip 解压 7z 文件。 拷贝所有的访问日志到一个叫做 logs 的文件夹中。 运行  Atlassian-processDailyLog.rb。这个命令将会创建一个 csv 文件,这个 csv 文件被命名为  summary.csv  同时还会创建一些目录,这些目录为日志包含的每一个用户的操作。 运行脚本  Atlassian-processDailyLog-hourly.rb <admin/comment/create/edit/search/rss>。每一个脚本将会创建不同的  csv  文件。例如, Atlassian-processDailyLog-hourly.rb admin 将会处理处理第 3 步骤中的 admin 日志。 导入  csv  文件到  www-log-Analysis.xls  ( summary.csv  到 'raw stats - daily' 列表和  admin.csv  到 'admin -hours' 列表等)来创建负载属性和图形。你需要为已经创建的列表修改行的数量,这个基于日志的大小。 Note 所有的脚本是使用 Ruby 写的,同时假定日志文件包含有字符串 ' confluence.atlassian.com -access.log'。如果你使用了不同的文件名,那么这个脚本也需要进行一些修改。修改行: filenameRegexp = Regexp.new(' confluence.atlassian.com -access.log') 中的内容。 https://www.cwiki.us/display/CONF6ZH/Access+Log+Scripts

Confluence 6 高级性能诊断

Image
请在你的系统服务请求中包括下面 所有 的信息,如果可能的话,你也可以在请求中包括你认为最有可能出现的问题。这样的话,可以避免我们进一步对你系统的问题进行询问。 系统信息 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 服务器在不同的服务器...

Confluence 6 基本性能问题诊断步骤

基本性能问题诊断步骤 开始下面的程序: 进入  Troubleshooting Confluence hanging or crashing  页面找到已知的主要性能问题。 进行页面  Performance Tuning  中的操作来帮助你对性能进行优化。 请求基本性能支持 如果上面的步骤没有能够为你提供帮助,你也不知道从哪里开始,你可以创建一个  support ticket  然后从基本的信息开始: atlassian-confluence.log catalina.out  日志(或者你的应用服务器日志),同时包含一系列的  thread dumps  在每 10 秒钟。 一些可能的信息的描述: 你对系统进行了什么样的修改? 你系统的性能问题是什么时候开始的? 在每一天的时候你的系统的性能通常在什么时候出现? 在那些页面或者操作的时候出现系统性能问题? 有没有什么规律? 如果可以的话,你可以继续对系统的性能进行一些更进一步的诊断。 https://www.cwiki.us/display/CONF6ZH/Requesting+Performance+Support

Confluence 6 内存使用和需求和一些问题

系统备份和恢复 Confluence  的备份和恢复是与数据库中数据量的大小有关。这个操作可能会对 Confluence 的性能产生很多关键性的影响并且大量消耗内存。如果你在 Confluence 的系统备份和恢复过程中遇到了  OutOfMemoryError  错误,我们强烈推荐你使用  Production Backup Strategy  进行系统的备份和恢复。 当你在 Confluence 系统备份和恢复的时候遇到了   OutOfMemoryError  错误,你希望通过增加内存的大小来修复这个错误的话。我们应该增加多少内存呢?一个指导方针是,查看你备份中的  entities.xml  文件的大小。这个文件的大小是 Confluence 需要载入的所有数据的大小,同时这个大小也是最小的需求值。针对这个大小,添加 64 - 128MB 到 Confluence 的内存来保证 Confluence 在系统备份的时候有足够可用的内存。有关增加可用内存的方法,请参考页面  increasing available memory  中的内容。 我们不能控制的已知问题 下面的一些内存的问题,我们可能没有办法进行控制: 针对 Oracle 10g JDBC 驱动的内存泄漏。我们没有太多可以做的地方。 一个用户发现了在 Tomcat 5 的版本上,如果使用 IBM JDK,在 PowerPC 平台上有严重的内存问题。 如果你在使用的时候遇到了比较严重的内存泄漏问题,请登录  http://support.atlassian.com 。我们的内存属性空间选择的是  YourKit 。这个工具能够帮助你向我们提供你机器上存在有内存泄漏的地方。 Confluence 对一些操作的响应时间过长 一个导致 Confluence 突然不响应的问题可能是 Confluence 正在运行 JVM 垃圾清理。为了确定这个是不是正在发生的情况,请详细查看垃圾清理程序然后检查 Java 花了多长时间才清空内存。如果临时停止响应的时候与 Java 运行垃圾清理的世界相同的话,那么就可以证明是 Java 的垃圾清理导致了这个问题。...

Confluence 6 内存使用和需求

管理 Confluence 性能和内存的使用和有什么资源可用是密切相关的。如果你给 Confluence 更多的内存来缓存内容,Confluence 将会运行得更加迅速,但是相对比较低的内存环境中,Confluence 也能够很好的进行工作。下面是有关 Confluence 站点进行配置的一些小技巧。 增加 Confluence 中可用的内存数量 查看  增加 JIRA 内存  页面来获得如何为 Web 应用程序增加可用内存,通常这个策略也可以在 Confluence 上使用。 嵌入数据库 嵌入的 HSQL 数据库能够允许 Confluence 访问存储到内存中的数据库,当 Confluence 服务运行的时候。当你遇到内存不够用或者溢出的时候,你可以考虑  migrating Confluence to an external database  中的方案。 缓存 在默认的情况下,Confluence 在内存中保存有大量的的缓存数据来提高用户的使用体验。这的配置需要增加内存的使用来换取效率。大型 Confluence 站点的管理员可能需要配置较多的内存来提高 Confluence 的使用效率。 为了自定义 Confluence 缓存来符合你的使用,请参考  Performance Tuning  页面中的内容。 为了增加 Confluence 可用的内存数量,请参考  How to fix out of memory errors by increasing available memory  页面中的内容。 邮件错误队列 Confluence 保留所有电子邮件发送内部错误的对立信息。在内部错误包括有网络连接问题,电子邮件队列可用在错误被修复后重新手动发送。在一些特定的情况下,电子邮件队列可能会包含有一些大数据的对象。这个队列通常是能够自动刷新的,但是如果你有很多的电子邮件错误,你可能会看到你的内存出现了问题。 附件 对大附件进行索引,我们需要将附件内容载入到内存中。当将附件载入内存的时候,我们将会遇到临时的系统资源高消耗同时还会导致索引失败,因为不是所有的附件都能载入到内存中。 https://www.cwiki.us/display/CONF6ZH...