Sie sind auf Seite 1von 6

Best practice around MID Server Application

The MID server is the application that will execute your discoveries and while it
can be utilized for other purposes such as local integrations it is best to have a
single MID Server be tasked with a single purpose (Discovery/RBA/Integration).
As of the Aspen Release of Service Now recommends as a best practice:

The MID Server application should be deployed upon a local drive on the
provided host within a unique folder structure following the defined wiki
documentation.

http://wiki.service-now.com/index.php?title=MID_Server_Installation

Traffic Considerations

While there is identified traffic resource consumption data it can very from
location to location. And to gauge how many MID Servers you would need
depends entirely on the number of targets you wish to discover and how often
you would like them discovered.

http://wiki.service-now.com/index.php?title=Discovery_Resource_Utilization

You can expect a single MID Server to discover

Single System ~90 seconds


Class C Network (254 IPs) - ~13 minutes
Class B Network (16k IPs) ~6 hours

*These are estimates and will vary in regards to the total number of devices in each subnet

When utilizing multiple MID Servers it is a Best practice to have them on their
own hosts within each environment. Utilizing this method allows you to get the
most out of the hosts resources and your MIDserver Application.
Resource Best Practices. Unused resources are
useless resources

The MID Server application ships at a relatively low resource requirement


however ServiceNow provides the ability to for users to add additional power to
the application utilizing CPU and Memory the host has available to provide.

The two main areas of MID Server application tuning are threads and memory.

Threads - A thread is a thread of execution in a program. The MID Server JVM


allows an application to have multiple threads of execution running concurrently.
We ship allowing our MIDServer to execute 25 threads at once. This can be
found in your deployed application in the /agent/conf.xml file

Increasing this number will increase the number of tasks (discovery probes) that
it will do at any one time speeding up your discovery jobs.

Memory Like all Applications they need RAM to be able to execute their jobs.
We ship requiring a small amount of memory for the MID Server only 512 MB.
This configuration can be found in the /agent/conf/wrapper.conf configuration file.

Increasing this number will allow the application to allocate itself more memory
resources from the host. This is done in conjunction with increasing the threads
as needed.
Why is this taking so long?
The need for speed or slow it down is a primary consideration when increasing
or decreasing resources to your MIDServer application. While your local
discovery may take a few hours to complete perhaps there is a need to increase
that time to complete. Perhaps things are going to quick or you need to discover
bandwidth sensitive networks. This is where threads and memory come into play.

A couple of very rough rules-of-thumb you can use: a MID server can process
about a probe per minute per thread, and there are about 7 probes per device on
average. Both of those may vary a bit in your environment, depending on the mix
of devices (for example, it takes more probes to discover Windows servers than it
does for routers) and the speed of your network communications and MID server.
Also, if your IP ranges are unusually large (say, /20 or bigger) and mostly empty,
your MID server will spend more time scanning non-responding IP addresses,
slowing things down a bit.

How does this translate into an estimate? Well, suppose you had a location with
about 2,500 devices (a mix of servers, network gear, printers, and workstations)
all together. Further suppose that you wanted Discovery to do its job between 6
pm and midnight on Friday and 3 am on Saturday each week a Discovery
window of 6 hours. Could a single MID server configured to use 25 threads do
the job?

Using the rules-of-thumb, discovering 2,500 devices would require about 72,500
= 17,500 probes. With 25 threads, the MID server can process about 25 probes
per minute. Therefore we can estimate that this work will take 17,500/25 = 700
minutes, or about 11 hours. However you need this work to be completed within
the allotted window.

Clearly it does not and why you would then want to increase the threads and/or
memory to the application to help achieve that goal. In our example above you
would want to just increase the threads by 25, which should accomplish your
goal. Or you can tune those threads down where network utilization is an
concernBut what if you maximum performance be it throttle it up or down?
Taking a Walk with your MIDServer
The best practice in getting the most out of your MIDServer and specifically its
host is a over time concept. And its key to have access to local monitoring
information of the host itself so you can identify specific trending information on
specific monitoring points. Specifically:

1. Host CPU and Memory utilization


2. MIDServer Application CPU and Memory utilization

On your instance we provide performance metrics that are only taken at 10-
minute intervals. Note: you may need to expose these related lists on your
MIDServer form specifically the ECC Agent Scalar metric and Memory Metric
Once added you will have information about the hosts CPU utilization through
the scalar metric

This CPU information shows the Minimum, Maximum and averages the hosts
CPU was measured, again over a 10-minute period.

And the memory metrics for the actual MIDServer Application

For memory we see how the application is configured for memory consumption
and how much it is utilizing over again that 10-minute period

1. Max available bytes the configured memory allocation for the MIDServer
as defined in the wrapper configuration file
2. Max allocated bytes What the MIDServer application has allocated itself
from the configured available bytes
3. Max Used Bytes Memory resources actively being used by our
MIDServer Java Process.

As the MIDServer sits idle there isnt going to be much memory consumption. As
its tasked to do work (Discoveries) the Max used will start going up taking more
allocated memory. As more allocated memory gets utilized the more the Java
goes into its available till it reaches the configured Max Available.
So by recognizing these points of measure to get the most out of your MIDServer
application and host you want to start by increasing or decreasing your threads
or again the number of probes you want the MIDServer to execute at any one
time.

As that number increases as will your memory utilization. Also as you have the
MIDServer application do more, the host will need more of its own resources to
manage your stronger and more powerful application, so it is key that you
monitor host performance as you get more from the MID. It is recommended to
keep your host at about 80% total utilization at full scale.

Using a base configured MIDServer with 4GB of local memory you should have
plenty of available resources to give to the MIDServer application as you walk
up the threads to a desired tasking level. Do remember increasing the amount of
work a MIDServer is tasked with will increase the network traffic as you are
discovering more probes at a single time.

Das könnte Ihnen auch gefallen