Performance Features and Improvements since Zabbix 1.8

Performance Features and Improvements since Zabbix 1.8
Performance Features
and Improvements
since Zabbix 1.8
The following table provides some information about the new features and
improvements related to performance since Zabbix 1.8:
Zabbix version
Zabbix 1.8
Performance features, improvements, and parameters
• The configuration data cache module
• Frontend images recompressed
• SNMP dynamic indexes using one connection
Zabbix 1.8.1
• Fixed the bad performance problem on node
synchronization
• Support for calculated items (reusing gathered
data)
Zabbix 1.8.2
• A new configuration parameter, called
MaxHouseKeeperDelete, for controlling
housekeeping behavior
• Frontend sections that use less memory
• Node synchronization has received further
performance improvements
[1]
Performance Features and Improvements since Zabbix 1.8
Zabbix version
Zabbix 1.8.3
Performance features, improvements, and parameters
• Some runtime data is no longer stored in the
database
• It updates trends in memory and their flushing to
disk by caching required information
• Faster configuration cache (better SQL queries
and in-memory optimizations)
• The Zabbix server stores repeated strings (such as
item keys) only once in the memory
Zabbix 1.8.4
• Improved network map performance
• Trigger last and prev functions by not
retrieving redundant information from the
database
• Memory usage has been reduced for web
monitoring
• Reduced memory usage and fragmentation for
the configuration cache
Zabbix 1.8.5
• The Zabbix agent's performance was improved,
especially on systems with many cores.
• The Zabbix daemon's internal process limits
were changed. These changes affected the Zabbix
server and proxy daemons.
• A new internal item was added to monitor the
Zabbix process' state. The zabbix[process,
<type>,<mode>,<state>] item allows us to
monitor the busy or idle percentage of different
Zabbix server processes over the last minute.
Zabbix 1.8.6
• Improved Zabbix server performance when
gathering text data.
• Improved Zabbix server performance when
processing unsupported items. Previously,
information about unsupported parameters was
stored directly in the database, bypassing the
write cache. Starting from 1.8.6, it uses write
cache, thus reducing the database load.
• Improved housekeeper performance on
PostgreSQL.
Zabbix 1.8.8
• The Zabbix server's performance improved
when calculating trigger expressions (now these
expressions are cached)
[2]
Appendix
Zabbix version
Performance features, improvements, and parameters
Zabbix 1.8.9
• In the frontend, this improved performance for
event acknowledging
• The Zabbix server's performance was improved
in some edge cases by skipping value updating
for disabled or removed items
• The Zabbix agent's daemon performance on AIX
was improved by only collecting data if it was
requested
Zabbix 1.8.11
• Unnecessary information, such as user history for
nodes and web monitoring items for proxies, is
not synchronized anymore
Zabbix 1.8.13
• In the frontend, this improved performance of the
Status of Zabbix dashboard widget
Zabbix 1.8.14
• This improved screen performance for
non-superadmin users
Zabbix 1.8.15
• In the frontend, this improved performance in
graph-related pages
Zabbix 1.8.16
• The previously, it was possible to send a large
amount of data to the Zabbix server, potentially
exhausting the memory. This was now limited
to 128 MB when using the Zabbix protocol. Any
other data (including older Zabbix protocols)
stayed limited at 16 MB.
Zabbix 1.8.17
• Performance of the SNMP normalize function
was improved.
• Previously, each dynamic index was obtained
individually when requested. On systems with
thousands of dynamic indexes, Zabbix pollers
were completely busy for more than 10 minutes
until the cache was built up. From this version
onwards, the first dynamic index request would
cause all the indexes in the same SNMP table
to be looked up and processed in one go. This
greatly sped up cache building and reduced the
SNMP query count. Note that all entries were
looked up even if only some were to be used
later.
As we can see, Zabbix SIA has worked very hard to improve the performance of
Zabbix 1.8. The most important feature was the configuration and history cache.
Since Zabbix 1.8, we have started working with data in a memory area, and the
database is not used all the time. Pollers and other internal process have started
working without directly accessing the database.
[3]
Performance Features and Improvements since Zabbix 1.8
However, Zabbix SIA's efforts to build a great monitoring tool didn't stop there.
Let's see what these guys changed in terms of performance in Zabbix version 2.0:
Zabbix version
Zabbix 2.0
Performance features, improvements, and parameters
• Multiple sections of frontend had their
performance improved.
• Improved housekeeper performance on
PostgreSQL.
• Caching of general configuration (unsupported
items, the discovery group, custom severity
names, alerts, and events).
• Trigger cache was introduced (it holds a
description, an expression, an error, a severity, a
type, a value, and value_flags). This resulted
in improved performance when processing
events.
• Improvements in user macro caching.
• Improved history (DB) syncer and escalator
performance.
Zabbix 2.0.1
• Previously, the Zabbix agents allocated a static
amount of memory to monitor eight disks or
partitions. This amount now became dynamic
and was allocated only if monitoring of a specific
disk or a partition was requested. This reduced
memory usage on systems where fewer than
eight disks were being monitored.
Zabbix 2.0.2
• In the frontend, the performance of graph-related
pages was improved
• In the frontend, the performance of the
dashboard's Host status widget was improved,
especially on setups with many groups
Zabbix 2.0.3
• Performance of the screen, host screen, and graph
sections was improved
Zabbix 2.0.4
• In the frontend, page refreshing would now
reload less files, thus improving overall frontend
performance and decreasing network traffic
[4]
Appendix
Zabbix version
Zabbix 2.0.5
Performance features, improvements, and parameters
• In the frontend, overall performance was
improved by optimizing performance checks
• In the frontend, the SQL query count was
reduced, and performance was improved in IT
services and most pages that accessed trigger
information
• Performance of Oracle as the Zabbix backend
database was improved by prefetching 2 MB of
data in SELECT statements
• Improved SNMP performance
• Increased cache size limits (CacheSize,
HistoryCacheSize, TrendCacheSize, and
HistoryTextCacheSize) to 2 GB
Zabbix 2.0.6
• Previously, low-level discovery could generate
a large number of database queries, and even
result in deadlocks. Starting from Zabbix 2.0.6,
each low-level discovery prototype would be
processed in its own transaction, avoiding the
deadlocks.
• Already discovered items would be updated only
if some of their properties had changed.
• Only changed fields would be updated.
• The amount and size of the SQL statements was
reduced.
• The amount of traffic exchanged between the
Zabbix server and the Java gateway was reduced.
[5]
Performance Features and Improvements since Zabbix 1.8
Zabbix version
Zabbix 2.0.7
Performance features, improvements, and parameters
• Performance of the dashboard's System status
widget was improved by an average of 3-7
percent for both memory usage and execution
time.
• The time required on 100,000 unsorted values
was reduced from 133 seconds to 2.5 seconds.
This low-level improvement was likely to help
with frontend performance on large installations.
• Oracle: Zabbix 2.0.5 improved performance by
adding a 2 MB prefetch. In some cases, this could
have led to worse performance. Thus, in Zabbix
2.0.7, the prefetch was changed to be row-based,
which would improve the performance in those
edge cases.
• Previously, Zabbix used a configuration cache
mutex and a string pool mutex. Starting from
Zabbix 2.0.7, only one mutex was used. This
change reduced the amount of time needed for
the initial update of the configuration cache by an
average of 20 percent.
• The Zabbix proxy performance was improved by
reducing the number of database queries on the
proxy side during configuration updates.
• No invalid recovery escalations. This, in the
case of big installations, could have affected the
performance of the database.
• Improved performance of the zabbix[queue]
internal check.
Zabbix 2.0.9
• Loading graphics was much improved by faster
working SQL statements, significantly (up to
100-1000x) improving the loading times with all
databases.
Zabbix 2.0.10
• The loading speed of several screens of the
Monitoring section (Last 20 issues, Latest data,
Status of triggers, Latest events, and so on) with
a large number of global scripts was improved
[6]
Appendix
Zabbix version
Zabbix 2.0.11
Performance features, improvements, and parameters
• Trigger processing performance during low level
discovery improved.
• A trigger could now only be processed by one
main history syncer or timer process at a time.
They would not do duplicate work by processing
triggers that were already being processed by
history syncers.
Zabbix 2.0.12
• Graph processing performance during low-level
discovery was significantly improved.
• Batch processing of IT services was added. It
resolved possible deadlocks and improved
performance when processing large IT service
trees (a 300 percent performance improvement).
As we can see, in Zabbix version 2.0, Zabbix SIA's guys improved the cache and
buffer functions. Another visible effort was improvement of the Zabbix frontend. The
maximum cache size changed to a bigger value. Here, the trigger cache was the most
important performance feature. This feature is part of the configuration cache and
holds information about triggers (description, expression, severity, type, and so on).
It improved performance with triggers and reduced the load on the database.
What about Zabbix 2.2? Have we had any performance improvements? Let's check:
[7]
Performance Features and Improvements since Zabbix 1.8
Zabbix version
Zabbix 2.2
Performance features, improvements, and parameters
• Loadable modules, a way of extending the
Zabbix functionality that is more
performance-minded than the user parameter
option or external checks.
• Allows the monitoring of proxy performance
metrics.
• To reduce the number of update operations,
shared memory was now used to store fields
related to the last and previous value of items,
causing great improvements in the server's
performance.
• The Zabbix server and proxy daemons would
now support bulk access to configuration and
history caches. This would reduce the quantity of
system calls of operation with semaphores and
positively affect the system's performance.
• The Zabbix pinger processes would not use a
connection to the database anymore.
• Redundant indexes were removed from several
of Zabbix's MySQL database tables. This was
likely to improve performance and slightly
reduce the database size of MySQL.
• Such indexes used to be created automatically
on MySQL. Now they were also created on
PostgreSQL, Oracle, and DB2 to improve the
Zabbix server's performance.
• ValueCache was introduced. This
in-memory cache could be used to access
historical data, instead of making direct SQL
calls to the database. If historical values were
not present in the cache, the missing values were
requested from the database and the cache was
updated accordingly.
Zabbix 2.2.2
• The ValueCache memory efficiency improved.
Now it required less shared memory to cache the
same number of values.
• Trigger processing performance during low-level
discovery was improved.
[8]
Appendix
Zabbix 2.2.3
• SNMP monitoring performance was significantly
improved by introducing bulk requests with a
maximum of 128 items. The load on the Zabbix
server and monitored SNMP devices was likely
to be greatly reduced.
• Graph processing performance during low-level
discovery was significantly improved.
• On Oracle databases, variable binding was now
used for bulk inserts, resulting in much better
performance.
Zabbix 2.2.4
• Only values that fell within the last 24 hours
were now displayed in Monitoring | Latest
data, Monitoring | Overview. This limit was
introduced with the aim of improving initial
loading times for large pages of the latest data.
• History cache performance was improved by
using the configuration cache more, instead of
using the database.
• Trigger-based events were loaded much faster
and with less memory usage in Monitoring |
Events.
• Last event calculation in the System status
frontend widget was optimized, which may have
resulted in improved speed and less memory
usage in environments with a large number of
problematic triggers and host groups.
Zabbix 2.2.6
• The performance of last value retrieval by the
item.get method was improved to use values
from 24 hours only (by default).
Zabbix 2.2.7
• Value cache requests were optimized to better
utilize database indexes. The improvement
would be mostly noticeable with large databases.
In Zabbix 2.2, the ValueCache feature was introduced. This feature would improve
performance with trigger expressions, calculated and aggregated items, and some
macros. With ValueCache, the Zabbix server would access historical data in the
memory instead of making direct SQL calls to the database.
In Zabbix 2.4, we got some more performance-related features:
[9]
Performance Features and Improvements since Zabbix 1.8
Zabbix version
Zabbix 2.4
Performance features, improvements, and parameters
• On startup of zabbix_server and zabbix_
proxy, housekeeping is postponed for 30
minutes instead of running at once. This will
lower the startup load for both of these processes.
• The formatting of JSON objects (with tabs and
new lines) has been removed, which allows the
traffic to be reduced by 20-30 percent when data
is sent between Zabbix services. Additionally, the
escaping of the forward slash, or solidus (/), has
also been removed.
• Improved performance of the deletion of triggers
by the API and server.
Zabbix 2.4.1
• Value cache requests have been optimized to
better utilize database indexes. The improvement
is mostly noticeable with large databases.
Even now, Zabbix SIA is working to improve Zabbix's performance. The changes
to the JSON formatting will save network traffic to monitoring functions up to 30
percent.
[ 10 ]
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement