org.cougaar.core.qos.profile

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Science » Cougaar12_4 » org.cougaar.core.qos.profile 
org.cougaar.core.qos.profile
Utility components to periodically log performance metrics, such as the cpu load and message traffic.


The simplest configuration option is to profile the aggregate "messages per second" throughput. Add the following components to all nodes:

  <!-- required profiler-management component -->
  <component
      class='org.cougaar.core.qos.profile.ProfilerCoordinator'
      priority='HIGH'
      insertionpoint='Node.AgentManager.Agent.Component'>
    <!-- optional period between logs, defaults to 60000 millis -->
    <argument>period=10000</argument>
  </component>

      <!-- message transport sensor -->
      <component
          class='org.cougaar.mts.std.StatisticsAspect'
          insertionpoint='Node.AgentManager.Agent.MessageTransport.Aspect'/>

  <!-- messaging throughput profiler -->
  <component
      class='org.cougaar.core.qos.profile.Throughput'/>
Example output:
2005-04-29 13:23:39,297 SHOUT [throughput] - NodeA: #agent_send_count_per_second, total_send_count_per_second, agent_send_count, total_send_count,
2005-04-29 13:23:39,362 SHOUT [throughput] - NodeA: 0.00, 0.00, 0, 3
2005-04-29 13:23:49,103 SHOUT [throughput] - NodeA: 0.56, 1.78, 5, 19
2005-04-29 13:23:59,101 SHOUT [throughput] - NodeA: 27.22, 27.22, 250, 264
2005-04-29 13:24:09,102 SHOUT [throughput] - NodeA: 121.50, 121.50, 1465, 1479
2005-04-29 13:24:19,101 SHOUT [throughput] - NodeA: 160.89, 161.11, 2913, 2929
In the above example, the agents on NodeA are sending an aggregate 161 messages/second. This output is from a two-node "ping" test from AgentA on NodeA to a remote AgentB on NodeB.


For more detailed profiling, add the following components to all nodes:

  <!-- required profiler-management component -->
  <component
      class='org.cougaar.core.qos.profile.ProfilerCoordinator'
      priority='HIGH'
      insertionpoint='Node.AgentManager.Agent.Component'/>

  <!-- mts components -->
      <component
          class='org.cougaar.mts.std.StatisticsAspect'
          insertionpoint='Node.AgentManager.Agent.MessageTransport.Aspect'/>
      <component
          class='org.cougaar.core.qos.tmatrix.AgentFlowAspect'
          insertionpoint='Node.AgentManager.Agent.MessageTransport.Aspect'/>

  <!-- optional mts-internal profilers (select none, any, or all) -->
  <component
      class='org.cougaar.core.qos.profile.LocalTraffic'
      insertionpoint='Node.AgentManager.Agent.MessageTransport.Component'/>
  <component
      class='org.cougaar.core.qos.profile.RemoteTraffic'
      insertionpoint='Node.AgentManager.Agent.MessageTransport.Component'/>
  <component
      class='org.cougaar.core.qos.profile.Throughput'
      insertionpoint='Node.AgentManager.Agent.MessageTransport.Component'/>
  <component
      class='org.cougaar.core.qos.profile.TrafficMatrix'
      insertionpoint='Node.AgentManager.Agent.MessageTransport.Component'/>

  <!-- metrics components and plugins -->
      <component
          class='org.cougaar.core.qos.rss.AgentHostUpdaterComponent'
          insertionpoint='Node.AgentManager.Agent.MetricsServices.Component'/>
      <component
          class='org.cougaar.lib.mquo.SyscondFactory'
          insertionpoint='Node.AgentManager.Agent.MetricsServices.Component'/>
      <component
          class='org.cougaar.core.qos.rss.ConfigFinderDataFeedComponent'
          insertionpoint='Node.AgentManager.Agent.MetricsServices.Component'>
        <argument>name=sites</argument>
        <argument>url=cougaarconfig:TIC-Sites.conf</argument>
      </component>
      <component
          class='org.cougaar.core.qos.rss.ConfigFinderDataFeedComponent'
          insertionpoint='Node.AgentManager.Agent.MetricsServices.Component'>
        <argument>name=hosts</argument>
        <argument>url=cougaarconfig:TIC-Hosts.conf</argument>
      </component>

      <component
          class='org.cougaar.core.qos.tmatrix.AgentFlowRatePlugin'/>
      <component
          class='org.cougaar.core.qos.metrics.AgentStatusRatePlugin'/>
      <component
          class='org.cougaar.core.thread.AgentLoadSensorPlugin'/>
      <component
          class='org.cougaar.core.thread.AgentLoadRatePlugin'/>
      <component
          class='org.cougaar.mts.std.StatisticsPlugin'/>
  
  <!-- optional profilers (select none, any, or all) -->
  <component
      class='org.cougaar.core.qos.profile.BlackboardSize'/>
  <component
      class='org.cougaar.core.qos.profile.JvmHeapSize'/>
  <component
      class='org.cougaar.core.qos.profile.Load'/>
  <component
      class='org.cougaar.core.qos.profile.NodeTraffic'/>
  <component
      class='org.cougaar.core.qos.profile.PersistSize'/>
  <component
      class='org.cougaar.core.qos.profile.ProcLoadAvg'/>
  <component
      class='org.cougaar.core.qos.profile.ProcNetDev'/>
  <component
      class='org.cougaar.core.qos.profile.ProcMemInfo'/>
  <component
      class='org.cougaar.core.qos.profile.ProcStat'/>
  <component
      class='org.cougaar.core.qos.profile.ProcStatus'/>
  <component
      class='org.cougaar.core.qos.profile.Resources'/>
  <component
      class='org.cougaar.core.qos.profile.VmStat'/>

  <!-- optional, required if above BlackboardSize is loaded -->
  <component
      class='org.cougaar.core.qos.profile.BlackboardSizeInAgent'/>
Plus add the following components to all agents:
  <!-- optional, required if above PersistSize is loaded -->
  <component 
      class='org.cougaar.core.qos.metrics.PersistenceAdapterPlugin'/>

  <!-- optional, required if above BlackboardSize is loaded -->
  <component
      class='org.cougaar.core.qos.profile.BlackboardSizeInAgent'/>


Some useful system properties:


  <!-- enable persistence, for PersistSize activity -->
  <vm_parameter>
    -Dorg.cougaar.core.persistence.enable=true
  </vm_parameter>

  <!-- disable the "NodeA: " logging prefix -->
  <vm_parameter>
    -Dorg.cougaar.core.logging.addAgentPrefix=false
  </vm_parameter>

  <!-- turn off +/- logging on message activity -->
  <vm_parameter>
    -Dorg.cougaar.core.agent.quiet=true
  </vm_parameter>

  <!-- reduce naming & mts startup time -->
  <vm_parameter>
    -Dorg.cougaar.core.wp.resolver.rmi.minLookup=500
  </vm_parameter>
  <vm_parameter>
    -Dorg.cougaar.core.wp.resolver.rmi.maxLookup=2000
  </vm_parameter>
  <vm_parameter>
    -Dorg.cougaar.core.wp.server.failTTD=1000
  </vm_parameter>
  <vm_parameter>
    -Dorg.cougaar.core.mts.destq.retry.maxTimeout=30000
  </vm_parameter>

Java Source File NameTypeComment
BlackboardSize.javaClass This component profiles the per-agent blackboard size and add/change/remove counts for standard blackboard object types (UniqueObject, Task, etc).

Example output:

 
 bb_AgentA__Task - #current, added, changed, removed
 bb_AgentA__Task - 5807, 7615, 3514, 1806
 bb_AgentA__UniqueObject - 11853, 18841, 46569, 6988
 bb_AgentA__transactions - 192, 192, 0, 0
 
In this example, 5807 tasks are on the blackboard.
BlackboardSizeInAgent.javaClass This component supports the node-level BlackboardSize profiler.
BlackboardSizeService.javaInterface This service registers agents with the node-level BlackboardSize profiler.
JavaHeapSize.javaClass This component profiles the JVM heap size (used, free, total, max).

Example output:

 jvmheap - #used_bytes, free_bytes, total_bytes, max_bytes
 jvmheap - 5430096, 5084336, 10514432, 66650112
 
In this example, the current JVM heap size is 5.18 mb.
Load.javaClass This component profiles the MetricsService 's load metrics for the cpu, messaging, and persistence load of the node aggegate, each agent, and core services (mts & metrics).
LocalTraffic.javaClass This component profiles the message traffic (message count and byte count) of each local agents to any target.

I.e.

NodeTraffic.javaClass This component profiles the aggregate message traffic of all local agents to any target.
PersistSize.javaClass This component profiles persistence activity for each agent and the aggegate node "sum".
ProcLoadAvg.javaClass This component profiles the CPU load from "/proc/loadavg".
ProcMemInfo.javaClass This component profiles system memory usage from "/proc/meminfo".
ProcNetDev.javaClass This component profiles system network activity from "/proc/net/dev".
ProcStat.javaClass This component profiles system activity from "/proc/stat".
ProcStatus.javaClass This component profiles the JVM's process size from "/proc/self/status" (VmSize & VmRSS).
ProfilerBase.javaClass This component is the common base class for profiler components.
ProfilerCoordinator.javaClass This component coordinates the profiler components to log at the same time.
ProfilerService.javaInterface
RemoteTraffic.javaClass This component profiles the message traffic (message count and byte count) from the local aggregated agents to each specific remote target agent.

I.e.

Resources.javaClass This component profiles the MetricsService 's summary resource metrics (load average, tcp use, etc).
ServiceFinder.javaClass A utility class to simplify late-binding service lookup.
ServiceProviderBase.javaClass A base class for ServiceProvider s.
Throughput.javaClass This component profiles the aggregate "messages per second" throughput for all agents on the local node.
TrafficMatrix.javaClass This component profiles the agent traffic matrix for all local-to-local and local-to-remote agent messaging.
VmStat.javaClass This component profiles the output of the "/usr/bin/vmstat" command, which summarizes the system performance.
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.