It is very important to have Zabbix system properly tuned for maximum performance.
General advice on hardware:
Many parameters may be tuned to get optimal performance.
General rule - keep value of this parameter as low as possible. Every additional instance of zabbix_server adds known overhead, in the same time, parallelism is increased. Optimal number of instances is achieved when queue, on average, contains minimum number of parameters (ideally, 0 at any given moment). This value can be monitored by using internal check zabbix[queue].
Optimal value is 3.
MySQL only. It is recommended to use DBSocket for connection to the database. That is the fastest and the most secure way.
This is probably the most important part of Zabbix tuning. Zabbix heavily depends on the availability and performance of database engine.
Problems related to the frontend performance may be diagnosed using the frontend debug mode.