I have an issue where I'm running out of worker_connections in NGINX and I wanted to do a stress test on my app to make sure all connections are good and not building up somewhere (it's a huge project).
How can I see how many current connections are made to the app? Either by database, client, httpClient requests, etc?
I’m running this on AWS EB. 8 t2.small instances at a rate of 500 requests per second on the load balancer.
Related
I was previously running both my wordpress application and the mysql database server installation inside the same Linux Virtual Machine on Azure. I recently migrated both to Azure App Service and Azure Database for MySQL Flexible Server respectively in the same region - East US. Unfortunately, this has really slowed down the application and page load times have increased to an average of 11 s from 1 s. I served all static files from a CDN but to no avail. Checking the network waterfall, the scripts blocking the page are calls to admin-ajax.php. Increasing the compute of both services to a ridiculous size (there is no traffic right now) only improves the speed to 6 s. Since, both services are in the same region I do not believe there can be such a significant network latency between the server and db. What additional steps can I take to troubleshoot the issue?
If you isolate the slowness endpoints and if its due to SQL then I suggest to configure VNET integration with app service and use service endpoint, Microsoft.SQL at subnet of app service integrated subnet such that some of limitation regarding number of sockets and network latency rule out and should observe performance gain. Parallelly you need to check SQL execution time either using profiling of queries or using Performance recommendations.
I know if we deploy SignalR app in default IIS which comes with windows 7 then we we can have only 10 active connection to SignalR app after that it rejects any incoming request.
but i want to know what are the different methods available to overcome with this issue please guide me.
Your limitation comes from the desktop version of Windows. If you install the app on a Windows Server, you will have much higher limit. The default limit of concurrent requests per application in SignalR is 5000, which you can change.
Check IIS configurations settings and ASP.NET configuration settings in the Performance section of the official documentation for ideas.
Obviously, there is always a limit. There are people who report 20,000-30,000 connections but that is very subjective, dependant on the code, threading decisions, and server capacity.
I have a App service hosted in Windows Azure in a region. When there are some issues with Azure servers in the hosted region, the app service goes down and the users are unable to see the website.
I would like to know if there is a way to geo-replicate the app service so that if the servers are down in 1 region, the website should automatically redirect it to a different server?
You can geo-replicate your app service by using Azure Traffic Manager service, which allows you to control the distribution of user traffic to your service endpoints running in different datacenters around the world.
As of today, Azure Traffic Manager provides 3 ways for routing the traffic: Priority, Weighted and Performance. For what you're looking to accomplish, I believe you would want to choose Priority routing method.
To learn more about how you can make use of this service to make your app service highly available, please see this link: https://azure.microsoft.com/en-us/documentation/articles/app-service-app-service-environment-geo-distributed-scale/.
This is an old entry but I thought I'd chime in after working with Azure for a few years.
If your statement "When there are some issues with Azure servers in the hosted region" is referring to transient outages, what you might be experiencing is your App Service Plan instance transitioning. Microsoft regularly moves ASP instances to new machines for reasons that make sense to them. Likely this is to load balance hardware or apply patches to the underlying VMs that host app services.
It has been my experience that when the ASP instances are moved, the new ASP instance needs time to warmup the app services hosted on it. If your ASP is configured with only 1 instance, your app service will be unreachable during this time.
If on the other hand, you configure your ASP with a minimum of 2 instances, Microsoft will synchronize the moving of the instances so that at least 1 remains up and available while the other is being moved.
Of course running a multi instance ASP requires your application to either be stateless or built using a session provider other than the default .Net "In Memory" session provider. CosmosDB for instance.
We have developed an ASP.NET application that uses a backend SQL Server database (dedicated server).
Application will be used by 30-40 users (but not more)
To prevent performance issues we are planning to load balance these application by installing 2 webservers (Windows Server 2012 / ISS 8.0).
QUESTION: Will load balancing significantly improve performance, taking in consideration the relatively low number of user requests (30-40 users in total) ?
Generally one server can handle around more than 2000 request at a time which depends on CPU core. Definitely load balancing improves the performance of application as it divided the traffic between two servers based on the routing request at LB.
Let me know if you require any more information.
Is it possible to disable tcp slow-start with windows 2003 and iis 6.0?
Or is it possible to up the Initial window higher than 3?
I'm basing this on a post where the guy claims that google and microsoft up the window to 8 for connections to decrease page load times.
This is also related to an issue we had on our network where page loads from a remote site were 20 times slower than from a local connection. It was eventually tracked back to a load-balancer setting; by forcing the load balancer to use the default slow-start standard the problem disapeared.
This has resulted in a bit of a pushing match between network and app development. network is convinced that it is something that was done with the application or at the very least done by changing something on the web servers. as you can guess i'm trying to convince them that it was a network setting in the load balancer that has caused the issue.