Virus Scan API Performance Troubleshooting |
9/3/2021 - Cloudmersive Support |
In this article we will focus on troubleshooting Virus Scan API Performance.
-
Check if you are running your test from your Home Internet Connection. This will produce poor results because you are effectively testing your home Internet connection upload speed. Most consumer Internet connections have slower upload than download speeds. This will dramatically impact your results and is not representative since you will be calling the API from a datacenter. Be sure to run any performance tests from the same data center environment that you plan to deploy to.
-
Check if you are running your test over VPN (Virtual Private Network). VPN introduces latency and can also slow down upload speeds. Be sure to run any performance tests from the same data center environment that you plan to deploy to.
-
Check if the computer you are running your test from has an Outbound HTTP Proxy configured. Most Enterprise laptops and servers have an Outbound HTTP Proxy configured as a security best practice. This can dramatically slow down your performance testing as your API call is first sent to a proxy server, and then sent from the proxy server to the Cloudmersive API. The proxy server often performs security tests on all traffic, slowing things down further. Be sure to run from an environment that closely replicates your production server environment.
-
SSL Certificate Errors: If the computer you are running your test from has an Outbound HTTP Proxy configured, it may use a technique called "SSL Bumping" to replace the Cloudmersive public certificate with a self-signed internal certificate from your internal certificate authority. If this is the case, you will need to ensure that the client you are using to call the endpoint trusts the certificate internal authority. You can do this by importing a root certificate into the trust store of the client. You will need to contact your IT department's security team to get this certificate. Note that many programming languages, such as Java, have a separate trust store from the OS trust store. So even if the certificate is already imported into the OS trust store it will not apply to the programming language (e.g. Java) trust store. As a test, you can temporarily disable SSL verification - if this addresses your issue, it is highly likely that you need to follow the above-outlined steps.
-
Check for endpoint network firewall and intrusion protection software on your test client machine that could be slowing down network performance.
-
How large is the file you are testing with? What data center region are you calling from and calling to? Trans-oceanic calls will introduce significant additional latency; always try to use the closest data center region to your client that you can.
-
What type of file are you attempting to scan? Zip files will take longer than other file types as child files are scanned. Text files can take longer than binary files.
-
Are you scanning a remote resource (e.g. a URL, Azure Blob, AWS S3, etc.)? If so be sure that this resource is performant, is as close as possible from a location perspective, and does not have security controls or rate limits enabled.
-
Is there a bug in your test code? Try running the same test from Postman by importing the Cloudmersive APIs into Postman. If you see better performance in Postman than in your code, then likely there is some sort of bug or configuration issue in your application code that can impact performance.
-
If you are receiving a timeout error, be sure to implement time timeout configuration setting in your code using the appropriate code snippet for your programming language
-
If you are using Cloudmersive Private Cloud, check for third party software installed on your server that may impact performance by reviewing the list of performance impacting third party software
|