Click here to Skip to main content
15,885,943 members
Please Sign up or sign in to vote.
4.69/5 (9 votes)
We are running into performance issues with our website. We’ve setup a test environment to determine where the problems occur. The test environment consist of 3 servers. (2 for the front-end (website) en 1 for the back-end (wcf webservices)). The specs of the servers:

Website 1: Intel Xeon e5410 (2x) 8GB ram
Website 2: Intel Xeon x3323 4GB ram
Webservice: Intel Xeon e5410 (2x) 8GB ram

The webservices are using net.tcp endpoints With Jmeter we’re sending 75 concurrent request to 1 page on website 1. The responsetimes keep increasing around 5 sec and then leveling off. When we go to website 1 with the browser, the website has high response times. When we go to website 2, same page, the website is fast. With netstat –t we can see that website 1 only has around 30 connections to the webservice. The endpoint binding in the web.config on the website is as follow:

XML
<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />  
    <bindings>
        <netTcpBinding>
            <binding name="netTCPBinding" maxReceivedMessageSize="999999999" sendTimeout="00:03:00" closeTimeout="00:03:00" receiveTimeout="00:03:00" maxConnections="65355">
                <readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="None"></security>
            </binding>
        </netTcpBinding>
    </bindings>
    <client>
        <endpoint address="net.tcp://192.168.1.124:21130/ContentService.svc" binding="netTcpBinding" bindingConfiguration="netTCPBinding" contract="ContentWS.IContentService" name="Default1">
        </endpoint>
        <endpoint address="net.tcp://192.168.1.124:21131/Service.svc" binding="netTcpBinding" bindingConfiguration="netTCPBinding" contract="PrijsvrijWS.IService" name="Default">
        </endpoint>
    </client>
</system.serviceModel>

This is the config of the webservice:

XML
<system.serviceModel>
    <bindings>      
        <netTcpBinding>
            <binding name="netTCPBinding" maxReceivedMessageSize="999999999" sendTimeout="00:03:00" closeTimeout="00:03:00" receiveTimeout="00:03:00" maxConnections="65355">
                <readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="None"></security>
            </binding>
        </netTcpBinding>
    </bindings> 
    <behaviors>
        <endpointBehaviors>
            <behavior name="ajaxBehavior">
                <enableWebScript />
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="serviceWithMetadata">
                <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="true" />
                <serviceThrottling maxConcurrentCalls="100" maxConcurrentInstances="100" maxConcurrentSessions="100" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="false" />
    <services>
        <service behaviorConfiguration="serviceWithMetadata" name="WcfService.Service">
            <endpoint address="net.tcp://localhost:21131/Service.svc" binding="netTcpBinding" bindingConfiguration="netTCPBinding" name="Default" contract="WcfService.IService" />
        </service>
        <service behaviorConfiguration="serviceWithMetadata" name="WcfService.ContentService">
            <endpoint address="net.tcp://localhost:21130/ContentService.svc" binding="netTcpBinding" bindingConfiguration="netTCPBinding" name="Default" contract="WcfService.IContentService" />
        </service>
    </services>
</system.serviceModel>

We tried servicethrottling, but it doesn’t seem to have effect. During the test CPU usage on the servers is as follow:

Website 1: around 60%, with max 90%
Website 2: 1%
Webservice: around 25%, with max 50%

Are we running at the max of the website 1 or are we missing some settings?
Posted
Comments
Bernhard Hiller 5-Feb-14 9:35am    
Do you send several requests per web page to the web service?
Is the web service still well responsive when the web site is already slow?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900