From f0be5948d63bd77cfdebfbf161a14de76fba722d Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 28 Oct 2021 19:59:55 +0000 Subject: [PATCH] --- docs/8.0/ayanova/docs/ay-report-busy.md | 17 ++++++++++++++++- docs/8.0/ayanova/docs/img/ay-report-busy.png | Bin 0 -> 6063 bytes ...ps-config-report-rendering-max-instances.md | 4 ++++ .../ops-config-report-rendering-timeout.md | 4 ++++ docs/8.0/ayanova/mkdocs.yml | 3 +++ 5 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 docs/8.0/ayanova/docs/img/ay-report-busy.png diff --git a/docs/8.0/ayanova/docs/ay-report-busy.md b/docs/8.0/ayanova/docs/ay-report-busy.md index 1770cb13..22f8ea9a 100644 --- a/docs/8.0/ayanova/docs/ay-report-busy.md +++ b/docs/8.0/ayanova/docs/ay-report-busy.md @@ -1,3 +1,18 @@ -# BUSY WHEN REPORTING +# REPORTING MAXIMUM LIMIT WARNING +[UNDER CONSTRUCTION PRE-RELEASE] +Rendering reports is a very demanding process at the server involving a significant of memory and cpu cycles. In order to ensure availability of the server for all users there is a configurable limit to the number of reports that can be processed simultaneously. + +When all available "slots" for processing reports are in use you will see the maximum limit warning message: +![The server is currently at the maximum limit for processing reports, please try again shortly](img/ay-report-busy.png) + +It is normal to see this message from time to time and simply resubmitting the report request again will usually return the report as expected. + +If you see this message on a regular basis it may indicate the need for your AyaNova server operations manager to adjust the report rendering limit settings. They should consult the Server Operations Configuration section of this manual for guidance. + +## How to work around limits for large reports + +A large report with a unusually high number of pages may be rejected if it's taking too long to render at the server while others are attempting to report at the same time. AyaNova will only enforce the configured time out when a report is taking up a rendering "slot" and preventing other's from being able to report. This means that there are no timeout limits as long as no other users are blocked from reporting. + +For this reason it's recommended that long running reports that are getting bumped be instead requested at a time when few if any other users will be requesting reports to avoid potential conflict and having your long running report "bumped" out of the queue. diff --git a/docs/8.0/ayanova/docs/img/ay-report-busy.png b/docs/8.0/ayanova/docs/img/ay-report-busy.png new file mode 100644 index 0000000000000000000000000000000000000000..452b00be0fe4d00a62312aee87d030fdafea60a1 GIT binary patch literal 6063 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 adLTGFBXQG8GKQsi0y>%o8U<>0um1(24^0~Y literal 0 HcmV?d00001 diff --git a/docs/8.0/ayanova/docs/ops-config-report-rendering-max-instances.md b/docs/8.0/ayanova/docs/ops-config-report-rendering-max-instances.md index ec690369..d079ea56 100644 --- a/docs/8.0/ayanova/docs/ops-config-report-rendering-max-instances.md +++ b/docs/8.0/ayanova/docs/ops-config-report-rendering-max-instances.md @@ -8,6 +8,10 @@ When AyaNova receives a report request it checks first to ensure there are not m It's important to note that this setting does not prevent AyaNova from processing a large time consuming report for any length of time necessary to complete it; this setting only takes effect when another report is requested to be rendered and there are no slots free for report rendering. For this reason, if a User has to render an unusually large report that is known to take longer than the timeout period they would be advised to render that report when no one else is requesting a report (i.e. after hours). +## Performance implications + +Note that increasing report rendering settings too high can result in the server running out of physical memory or CPU capacity. When increasing the limits be mindful of this potential and monitor the server carefully to ensure it's not "bottlenecking". The reporting capacity scales directly with the amount of memory and CPU capacity available to the server. + ## Default If no override is specified AyaNova will use the following default value: diff --git a/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md b/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md index c3417d78..2a0b7eae 100644 --- a/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md +++ b/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md @@ -4,6 +4,10 @@ The report rendering timeout value controls how long AyaNova will wait for a pri This avoids a situation where a subsequent user can not get their report because a prior report generation is frozen due to a bug in a report template script or simply selecting too many records to report in a practical amount of time. +## Performance implications + +Note that increasing report rendering settings too high can result in the server running out of physical memory or CPU capacity. When increasing the limits be mindful of this potential and monitor the server carefully to ensure it's not "bottlenecking". The reporting capacity scales directly with the amount of memory and CPU capacity available to the server. + ## How timeouts work When a report is requested to be rendered AyaNova starts the process and makes note of the time and will process that report indefinitely for as long as it takes to complete. However, if a subsequent report request is made and the first report has not completed yet then AyaNova will use this setting to wait for the first report to process before starting the next one. If the timeout period completes without the first report completed rendering then AyaNova will forcibly stop processing the first report and release the resources dedicated to it and start processing the new report. diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml index d71bb7ce..09b01aa8 100644 --- a/docs/8.0/ayanova/mkdocs.yml +++ b/docs/8.0/ayanova/mkdocs.yml @@ -101,6 +101,7 @@ nav: - 'Data list columns': 'ay-data-list-column-view.md' - 'Log': 'ay-log.md' - 'Report editor': 'ay-report-edit.md' + - 'Report maximum limit warning': 'ay-report-busy.md' - Extensions: - 'Tags extension': 'ay-ex-tags.md' - 'Export extension': 'ay-ex-export.md' @@ -140,6 +141,8 @@ nav: - 'Server temporary files folder': 'ops-config-folder-temporary-files.md' - 'Database configuration': 'ops-config-db.md' - 'PORT and URL configuration': 'ops-config-use-urls.md' + - 'Reporting timeout configuration': 'ops-config-report-rendering-timeout.md' + - 'Reporting max instances configuration': 'ops-config-report-rendering-max-instances.md' - 'Environment variable reference': 'ops-config-environment-variables.md' - 'Security and JWT web tokens': 'ops-config-jwt-secret.md' - 'SuperUser password reset': 'ops-config-set-superuser-pw.md'