--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/altnet-hispano/-/mbzsblbKUIMJ.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.
Usa REST
--
Jeje creo que no me explique bien, no tengo problemas con la serialización de los objetos, lo que pasa es que necesito usar los WebServices porque el aplicativo movil necesita extraer datos de una base de datos SQL Server externa, obviamente este servidor no puede estar expuesto a Internet por los riesgos de seguridad que esto implicaría y es x eso que necesito un servicio en "medio" que exponga estos datos y quería saber si hay manera de recuperar esos datos de forma más rápida.
Saludos.--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/altnet-hispano/-/MBMHn4irTJ8J.
Jeje creo que no me explique bien, no tengo problemas con la serialización de los objetos, lo que pasa es que necesito usar los WebServices porque el aplicativo movil necesita extraer datos de una base de datos SQL Server externa, obviamente este servidor no puede estar expuesto a Internet por los riesgos de seguridad que esto implicaría y es x eso que necesito un servicio en "medio" que exponga estos datos y quería saber si hay manera de recuperar esos datos de forma más rápida.
Saludos.--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/altnet-hispano/-/MBMHn4irTJ8J.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/altnet-hispano/-/mbzsblbKUIMJ.
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.
Hola José, ya casi ni me acordaba que hice esta pregunta en el foro (fue en el 2012), lo resolví creando un RESTful Service con WCF y transmitiendo JSON, de esta manera logré que los datos enviados sean mucho más cortos, y a menos KB de transferencia es mayor la performance. Por lo cual hizo que mi aplicativo móvil de Windows Mobile fuera súper rápido, recuerdo que hasta recibí un bono en la empresa por semejante logro jeje.
Saludos!
Enviado desde Correo para Windows 10
--
Has recibido este mensaje porque estás suscrito a un tema del grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/altnet-hispano/5IvvHQjvknE/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/altnet-hispano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a altnet-hispano+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a altnet-hispano@googlegroups.com.
Visita este grupo en https://groups.google.com/group/altnet-hispano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a altnet-hispano+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a altnet-hispano@googlegroups.com.
Visita este grupo en https://groups.google.com/group/altnet-hispano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
system.servicebehaviors -> throttling values
system.net -> connectionManagement -> maxConnection
processModel -> maxWorkerThreads=”500″
maxIoThreads=”500″
minWorkerThreads=”250″
minIoThreads=”250″
Para WCF:
· Changed the binding to netTcpBinding.
· Changed throttling values:
· WCF: maxConcurrentCalls, maxConcurrentSessions, maxConcurrentInstances all to 1000
· TCP binding: maxConnections=1000
· Threadpool: Min worker threads = 1000, Min IO threads = 2000
<serviceBehaviors>
<behavior name="defaultServiceBehavior">
<serviceThrottling maxConcurrentCalls="100"
maxConcurrentInstances="100" maxConcurrentSessions="100" />
There are three main properties properties provided by default WCF throttling.
1- maxConcurrentCalls – How many number of request can be accepted by a service in a second.
2- maxConcurrentSessions – How many number of request can be processed by a service in a second.
3- maxConcurrentInstances – How many number of instances of service can be created by a service in a second.
Now before moving further, the above values are default values if one is using .NET 4.0 or less. But if you are using the .NET 4.5, Microsoft made it dynamic and changed it significantly and as
maxConcurrentCalls – 16 times of number of processors
maxConcurrentSessions – 100 times of number of processors
maxConcurrentInstances – Sum of maxConcurrentCalls and maxConcurrentSession.
Normally at our production servers, we used 8 or 16 or more processors. Correct. let’s see the value in case of 8 cores
maxConcurrentCalls – 144
maxConcurrentSessions – 800
maxConcurrentInstances – 944
<connectionManagement>
<add address="*" maxconnection="100" />
</connectionManagement>
<connectionManagement>
<add address="myapi.com" maxconnection="12"/>
<add address="yourapi.com" maxconnection="8"/>
<add address="hisapi.com" maxconnection="4"/>
</connectionManagement>
processModel
enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="00:00:05"
requestLimit="Infinite"
requestQueueLimit="5000"
restartQueueLimit="10"
memoryLimit="60"
webGarden="false"
cpuMask="0xffffffff"
userName="machine"
password="AutoGenerate"
logLevel="Errors"
clientConnectedCheck="00:00:05"
comAuthenticationLevel="Connect"
comImpersonationLevel="Impersonate"
responseDeadlockInterval="00:03:00"
responseRestartDeadlockInterval="00:03:00"
autoConfig="false"
maxWorkerThreads="100"
maxIoThreads="100"
minWorkerThreads="40"
minIoThreads="30"
serverErrorMessageFile=""
pingFrequency="Infinite"
pingTimeout="Infinite"
maxAppDomains="2000"
/>
The <httpRuntime> element configures the ASP.NET runtime settings. You can specify these at the machine, site, application, and subdirectory levels. The default settings from Machine.config are as follows.
<httpRuntime executionTimeout="90" maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false" minFreeThreads="8"
minLocalRequestFreeThreads="4" appRequestQueueLimit="100"
enableVersionHeader="true"/>
For a detailed description of each attribute, see "<httpRuntime> Element" in the .NET Framework documentation at http://msdn.microsoft.com/en-us/library/e1f13641(VS.71).aspx.
The following list describes key attributes (in <processModel> and <httpRuntime>) in the machine.config file related to ASP.NET ThreadPool.
The list also discusses the scenarios where each attribute applies:
Increasing maxconnection enables more calls to be executed concurrently to a remote Web service. This attribute does not affect local Web service calls. An increase in the number of concurrent calls causes an increase in the utilization of threads that are used to make the remote calls.
Increasing maxconnection also can lead to an increase in CPU utilization. This increase in CPU utilization is caused by the fact that more incoming requests can be processed by ASP.NET instead of having the incoming requests wait for their turn to call the Web service. You need to balance the maxconnection with the other attributes discussed in this list and the actual CPU utilization.
As described earlier, if you increase maxconnection, you cause increased concurrent processing, which requires a greater number of worker and I/O threads. Consider the following guidelines when tuning these attributes:
If you have a Web service on the same server as your Web application, consider the following to decide when to increase the default values:
You can use this attribute to help prevent deadlocks by ensuring that a thread is available to handle callbacks from pending asynchronous requests. A deadlock can occur if all of the threads in the thread pool are currently in use handling incoming HTTP requests, and one or more of those requests are waiting for asynchronous callbacks. In this situation, there are no available threads to service the callback. You can setminFreeThreads to ensure that some free threads are available to process the callbacks.
Increasing minFreeThreads means that you reserve more threads to make remote calls. In all cases, you should ensure that maxWorkerThreads– minFreeThreads >=12. Twelve is the optimum number of threads that should be made available to the ASP.NET worker process to service requests. This value means that ASP.NET cannot execute more than twelve requests concurrently. This limit is based on a series of performance tests, which demonstrate that normally the worker process uses four of these threads. If the processor is fully utilized (greater than 95 percent utilization) and your application makes long-running calls, the worker process is likely to use all twelve threads.
You might want to increase the attribute from the default values in the following scenarios:
The default setting is four, so if only three worker threads are available the local request is queued. When this value is decreased, ASP.NET starts to use threads more aggressively, resulting in less local queuing.
Note Requests from remote clients start to queue when the free threads in the thread pool fall below the value ofminFreeThreads.
If you decrease the value of minLocalRequestFreeThreads value without changing the minFreeThreads attribute, you are effectively telling the worker process to give priority to completing calls from the local server.
https://msdn.microsoft.com/en-us/library/ms998583.aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/dn567678(v=vs.85).aspx
Saludotes!!
Carlos
Me pregunto si habrá una guía o libro blanco sobre High Performance REST Services?
Cualquier ayuda se agradecería.
Muchas gracias de antemano.