ASP sirve para miles de usuarios ?

09/06/2005 - 18:18 por Moncho | Informe spam
Hola, me he inscrito al grupo para resolver la siguiente duda (les agardezco
me colaboren):

He desarrollado un sistema muy sencillo de pedidos en ASP y lo tengo
funcionando en un servidor desde hace tres meses. Me ha preguntado el
cliente para quien lo desarrolle sí este sistema puede llegar a soportar
miles de usuarios ya que el esta interesado en publicar el sistema no solo a
sus vendedores (50 aprox) sino que ahora quiere que los mismos clientes
(10.000 aprox) puedan ellos mismos hacer los pedidos por la pagina.

Este cliente tiene una bodega de distribucion de productos de consumo masivo
y por medio de los 50 vendedores recibe pedidos de aprox 10.000 clientes.

Soy nuevo en ASP, lo estoy manejando hace 5 meses y no se si la aplicación
que yo desarrollé soporte tal cantidad de usuarios, teniendo en cuenta que
simultaneamente no se conectan todos, pero si unos cuantos miles, no pude
responderle a mi cliente si el sistema estaria en capacidad de soportar tal
volumen de consultas simultaneas.

La base de datos que estoy utilizando es Visual FoxPro la cual acceso por
ODBC y hasta el momento ha trabajado muy bien. Si debo cambiar a SQL server
u otra pues lo puedo hacer.

Que deberia hacer yo para que el sistema si soporte un muy alto nivel de uso
?
Debo tener una configuracion especial en mi servidor ?
Debo tener en cuenta algun tipo de estandar de programacion en ASP para
soportar esto ?
Si mi aplicacion como está no sirviera, que deberia yo hacer para que
funcione ?
Debo cambiar de plataforma Windows a Linux y migrar de ASP a PHP ? ( esto lo
digo porque a algunas personas que les he preguntado me dicen que manejar
miles de usuarios en plataforma Wiindows no es buena idea, mas no sé porque)

Por favor ayudenme con sus comentarios ya que no soy experto en la matria y
necesito una solucion .

Mil gracias por sus comentarios.

Preguntas similare

Leer las respuestas

#1 Valdov
09/06/2005 - 18:21 | Informe spam
Que sistema manejador de base de datos utilizaste?

Que hardware tienes en el servidor?

Que ancho de banda tienes en tu conexion?

Valdov
Id Msn Messenger:




"Moncho" escribió en el mensaje
news:%
Hola, me he inscrito al grupo para resolver la siguiente duda (les
agardezco
me colaboren):

He desarrollado un sistema muy sencillo de pedidos en ASP y lo tengo
funcionando en un servidor desde hace tres meses. Me ha preguntado el
cliente para quien lo desarrolle sí este sistema puede llegar a soportar
miles de usuarios ya que el esta interesado en publicar el sistema no solo
a
sus vendedores (50 aprox) sino que ahora quiere que los mismos clientes
(10.000 aprox) puedan ellos mismos hacer los pedidos por la pagina.

Este cliente tiene una bodega de distribucion de productos de consumo
masivo
y por medio de los 50 vendedores recibe pedidos de aprox 10.000 clientes.

Soy nuevo en ASP, lo estoy manejando hace 5 meses y no se si la aplicación
que yo desarrollé soporte tal cantidad de usuarios, teniendo en cuenta que
simultaneamente no se conectan todos, pero si unos cuantos miles, no pude
responderle a mi cliente si el sistema estaria en capacidad de soportar
tal
volumen de consultas simultaneas.

La base de datos que estoy utilizando es Visual FoxPro la cual acceso por
ODBC y hasta el momento ha trabajado muy bien. Si debo cambiar a SQL
server
u otra pues lo puedo hacer.

Que deberia hacer yo para que el sistema si soporte un muy alto nivel de
uso
?
Debo tener una configuracion especial en mi servidor ?
Debo tener en cuenta algun tipo de estandar de programacion en ASP para
soportar esto ?
Si mi aplicacion como está no sirviera, que deberia yo hacer para que
funcione ?
Debo cambiar de plataforma Windows a Linux y migrar de ASP a PHP ? ( esto
lo
digo porque a algunas personas que les he preguntado me dicen que manejar
miles de usuarios en plataforma Wiindows no es buena idea, mas no sé
porque)

Por favor ayudenme con sus comentarios ya que no soy experto en la matria
y
necesito una solucion .

Mil gracias por sus comentarios.


Respuesta Responder a este mensaje
#2 Manuel Vera
09/06/2005 - 18:30 | Informe spam
Dejando a un lado el hecho de que usas Fox como base de datos, mis
observaciones son:
- Limitar al minimo el uso de las variables Session(""). Mientras mas uses,
mas bajo performance tendrá el web server.
- Las Session() solo deben almacenar caracteres y/o numeros, nunca objetos.
- Depende del servidor web donde esté hospedada la aplicación.
- Depende del tipo de consultas que hagas a tu base de datos; debes
limitarlas al minimo de registros.

MS recomienda el uso de aplicaciones web asociadas a SQL Server, por el
hecho de que SQL Server optimiza el manejo de transacciones y procesamiento
de datos. No he leido nada al respecto de aplicaciones web que apunten a Fox
como motor de datos. En relación a SQL Server, la recomendación es abrir la
conexion solo cuando sea imperiosamente necesario y cerrarla inmediatamente
cuando deje de serlo. Eso por cada página ASP que procese datos. Obviamente,
lo mismo aplica con los recordset. Ambos, Connetions y Recordset deben ser
liberados de memoria seteandolos a Nothing.

Eso en resumen
Salu2
MV

"Moncho" wrote in message
news:%
Hola, me he inscrito al grupo para resolver la siguiente duda (les


agardezco
me colaboren):

He desarrollado un sistema muy sencillo de pedidos en ASP y lo tengo
funcionando en un servidor desde hace tres meses. Me ha preguntado el
cliente para quien lo desarrolle sí este sistema puede llegar a soportar
miles de usuarios ya que el esta interesado en publicar el sistema no solo


a
sus vendedores (50 aprox) sino que ahora quiere que los mismos clientes
(10.000 aprox) puedan ellos mismos hacer los pedidos por la pagina.

Este cliente tiene una bodega de distribucion de productos de consumo


masivo
y por medio de los 50 vendedores recibe pedidos de aprox 10.000 clientes.

Soy nuevo en ASP, lo estoy manejando hace 5 meses y no se si la aplicación
que yo desarrollé soporte tal cantidad de usuarios, teniendo en cuenta que
simultaneamente no se conectan todos, pero si unos cuantos miles, no pude
responderle a mi cliente si el sistema estaria en capacidad de soportar


tal
volumen de consultas simultaneas.

La base de datos que estoy utilizando es Visual FoxPro la cual acceso por
ODBC y hasta el momento ha trabajado muy bien. Si debo cambiar a SQL


server
u otra pues lo puedo hacer.

Que deberia hacer yo para que el sistema si soporte un muy alto nivel de


uso
?
Debo tener una configuracion especial en mi servidor ?
Debo tener en cuenta algun tipo de estandar de programacion en ASP para
soportar esto ?
Si mi aplicacion como está no sirviera, que deberia yo hacer para que
funcione ?
Debo cambiar de plataforma Windows a Linux y migrar de ASP a PHP ? ( esto


lo
digo porque a algunas personas que les he preguntado me dicen que manejar
miles de usuarios en plataforma Wiindows no es buena idea, mas no sé


porque)

Por favor ayudenme con sus comentarios ya que no soy experto en la matria


y
necesito una solucion .

Mil gracias por sus comentarios.


Respuesta Responder a este mensaje
#3 Moncho
09/06/2005 - 19:10 | Informe spam
Hola,

Que sistema manejador de base de datos utilizaste?
Estoy usando VisualFoxPro y hasta el momento ha trabajdo muy bien. Pero si
debo cambiar a un motor mas robusto como SQL Server pues puedo hacerlo.

Que hardware tienes en el servidor?

El servidor no es mio, lo he contratado con una empresa en EU, la maquina
creo que tiene Win2003Server, tengo entendido que es una buena maquina
(buena memoria, buen procesador y etc ).
Si se requiere tener una maquina en particuklar, mi cliente esta en
capacidad de comprarla, luego si este equipo debe tener algunas
caracteristicas especiales, yo agradeceria que me las dijeran para de esta
forma cotizar y hacer un presupuesto. Luego la maquina en la que ha e quedar
instalada la aplicacion puede ser la que se necesite, eso es claro para mi
cliente, el sabe que hay que inevrtir en hardware, entre otras cosas.


Que ancho de banda tienes en tu conexion?
-
Lo mismo que en el punto anterior, el ancho de banda actaul es de 6GB/mes,
pero si hay que tener uno mayor, pues se conseguiria.

En terminos generales la infraestructura que se requiera para que el sistema
funcione para miles de usuarios, es posible adquirirla, bien sea cambiando a
un nuevo proveedor de hosting o bien sea montando nosotros mismos la
infraestructura, comprando servidores y canales de comunicacion.


"Valdov" escribió en el mensaje
news:
Que sistema manejador de base de datos utilizaste?

Que hardware tienes en el servidor?

Que ancho de banda tienes en tu conexion?

Valdov
Id Msn Messenger:




"Moncho" escribió en el mensaje
news:%
> Hola, me he inscrito al grupo para resolver la siguiente duda (les
> agardezco
> me colaboren):
>
> He desarrollado un sistema muy sencillo de pedidos en ASP y lo tengo
> funcionando en un servidor desde hace tres meses. Me ha preguntado el
> cliente para quien lo desarrolle sí este sistema puede llegar a soportar
> miles de usuarios ya que el esta interesado en publicar el sistema no


solo
> a
> sus vendedores (50 aprox) sino que ahora quiere que los mismos clientes
> (10.000 aprox) puedan ellos mismos hacer los pedidos por la pagina.
>
> Este cliente tiene una bodega de distribucion de productos de consumo
> masivo
> y por medio de los 50 vendedores recibe pedidos de aprox 10.000


clientes.
>
> Soy nuevo en ASP, lo estoy manejando hace 5 meses y no se si la


aplicación
> que yo desarrollé soporte tal cantidad de usuarios, teniendo en cuenta


que
> simultaneamente no se conectan todos, pero si unos cuantos miles, no


pude
> responderle a mi cliente si el sistema estaria en capacidad de soportar
> tal
> volumen de consultas simultaneas.
>
> La base de datos que estoy utilizando es Visual FoxPro la cual acceso


por
> ODBC y hasta el momento ha trabajado muy bien. Si debo cambiar a SQL
> server
> u otra pues lo puedo hacer.
>
> Que deberia hacer yo para que el sistema si soporte un muy alto nivel de
> uso
> ?
> Debo tener una configuracion especial en mi servidor ?
> Debo tener en cuenta algun tipo de estandar de programacion en ASP para
> soportar esto ?
> Si mi aplicacion como está no sirviera, que deberia yo hacer para que
> funcione ?
> Debo cambiar de plataforma Windows a Linux y migrar de ASP a PHP ? (


esto
> lo
> digo porque a algunas personas que les he preguntado me dicen que


manejar
> miles de usuarios en plataforma Wiindows no es buena idea, mas no sé
> porque)
>
> Por favor ayudenme con sus comentarios ya que no soy experto en la


matria
> y
> necesito una solucion .
>
> Mil gracias por sus comentarios.
>
>


Respuesta Responder a este mensaje
#4 Moncho
09/06/2005 - 19:30 | Informe spam
Gracias Manuel,

El sistema esta compuesto por 15 paginas .ASP, en cada pagina manejo 15
variables de sesion para identificar al usuario, su perfir, y otras cosas,
cada variable almacena cadenas de texto que van desde 5 caracteres hasta 30.
No se si estas sean muchas variables de sesion com para que la aplicacion
sea muy pesada para miles de usuarios. Cual es su opinion, 15 son muchas? No
estoy manejando objetos en las variables de sesion porque no se como
hacerlo.

Las consultas que se hacen a la base de datos, cada una depende del usuario,
basicamente los registros mostrados en cada consulta son los items que se
estan solicitando en un determinado pedido, luego en una pagina de consulta
se pueden desplegar alrededor de 100 a 200 registros, que hacen referencia
cada uno al item solicitado ( el codigo y nombre del item, la cantidad
pedida, el valor unitario, los impuestos, el valor total), cada registro
pesa al rededor de 400 bites, luego una pagina que muestra 100 registros,
pesa alrededor de 40.000 bites osea aprox 40Kb. No se si esto sea mucho para
una aplicacion para miles de usuarios, cual es su opinion ?

Cada consulta esta hecha para tomar los datos de maximo dos tablas, la
mayoria de las consultas toman la informacion de una sola tabla.

Las conexiones a la base de datos, las abro solo cuando las necesito e
inmediatamente las he usado, las cierro. Por cada pagina .ASP tengo
basicamente dos conexiones : una con la cual valido al usuario y reviso
algunas de sus caracterirsticas contra la tabla de usuarios y otra para
traer la informacion de la tabla de pedidos.

Al abrir la primer conexion y consultar en la tabla de usuarios, enseguida
la cierro y procedia a abrir otra conexion para consultar la tabla de
pedidos, luego en ninguna de las paginas .ASp tengo al mimso tiempo abiertas
dos conexiones, maxiomo ha de estar abierta solo una, la cual cierro apenas
dejo de utilizarla. De igual manera con los recordsets, los utilizo y los
descargo de memoria con .Close e igualando la variable a Nothing, tal cual
ud. me indica.

De sus observaciones deduzco que a nivel de programacion no hay que hacer
nada especial para que el aplicativo sirva para miles de usuarios
SIMULTANEOS. En un pequeño curso que tome de java, el instructor explicaba
que Java si manejaba Multihilo y que ASP no lo hacia, luego el servidor se
portaba mucho mejor con aplicaciones web desarrolladas en java que en ASP,
pero el instructor explicaba que para poder manejar el Multihilo con java,
se requeria el manejo de una librerias especiales, lo cual afectaba la
manera como una aplicacion era programada. Sucede lo mismo con ASP ?

- Si ASP no es multihilo, como puedo asegurar que mi sistema si ha de
soportar miles de usuarios simultaneos ?
- En si quien (o que) se enecarga de que en un momento dado, cuando el
servidor esta recibiendo miles de solicitudes simultaneas, estas sean
procesadas correctamente sin que la maquina se cuelgue ?
- Alguien me mencionop que en Windows2k y windows 2k3 server era necesario
trabajar con Transaction Server, pero no se que es esto y que implicaria
para mi actual aplicacion ? tendria que reescribirla por ocmpleto para poder
utilizar el Transaction Server o no es necesario ?

Disculpe que le haga tantas preguntas, pero tengo miles de inquietudes.

Mil gracias por sus comentarios.


"Manuel Vera" escribió en el mensaje
news:
Dejando a un lado el hecho de que usas Fox como base de datos, mis
observaciones son:
- Limitar al minimo el uso de las variables Session(""). Mientras mas


uses,
mas bajo performance tendrá el web server.
- Las Session() solo deben almacenar caracteres y/o numeros, nunca


objetos.
- Depende del servidor web donde esté hospedada la aplicación.
- Depende del tipo de consultas que hagas a tu base de datos; debes
limitarlas al minimo de registros.

MS recomienda el uso de aplicaciones web asociadas a SQL Server, por el
hecho de que SQL Server optimiza el manejo de transacciones y


procesamiento
de datos. No he leido nada al respecto de aplicaciones web que apunten a


Fox
como motor de datos. En relación a SQL Server, la recomendación es abrir


la
conexion solo cuando sea imperiosamente necesario y cerrarla


inmediatamente
cuando deje de serlo. Eso por cada página ASP que procese datos.


Obviamente,
lo mismo aplica con los recordset. Ambos, Connetions y Recordset deben ser
liberados de memoria seteandolos a Nothing.

Eso en resumen
Salu2
MV

"Moncho" wrote in message
news:%
> Hola, me he inscrito al grupo para resolver la siguiente duda (les
agardezco
> me colaboren):
>
> He desarrollado un sistema muy sencillo de pedidos en ASP y lo tengo
> funcionando en un servidor desde hace tres meses. Me ha preguntado el
> cliente para quien lo desarrolle sí este sistema puede llegar a soportar
> miles de usuarios ya que el esta interesado en publicar el sistema no


solo
a
> sus vendedores (50 aprox) sino que ahora quiere que los mismos clientes
> (10.000 aprox) puedan ellos mismos hacer los pedidos por la pagina.
>
> Este cliente tiene una bodega de distribucion de productos de consumo
masivo
> y por medio de los 50 vendedores recibe pedidos de aprox 10.000


clientes.
>
> Soy nuevo en ASP, lo estoy manejando hace 5 meses y no se si la


aplicación
> que yo desarrollé soporte tal cantidad de usuarios, teniendo en cuenta


que
> simultaneamente no se conectan todos, pero si unos cuantos miles, no


pude
> responderle a mi cliente si el sistema estaria en capacidad de soportar
tal
> volumen de consultas simultaneas.
>
> La base de datos que estoy utilizando es Visual FoxPro la cual acceso


por
> ODBC y hasta el momento ha trabajado muy bien. Si debo cambiar a SQL
server
> u otra pues lo puedo hacer.
>
> Que deberia hacer yo para que el sistema si soporte un muy alto nivel de
uso
> ?
> Debo tener una configuracion especial en mi servidor ?
> Debo tener en cuenta algun tipo de estandar de programacion en ASP para
> soportar esto ?
> Si mi aplicacion como está no sirviera, que deberia yo hacer para que
> funcione ?
> Debo cambiar de plataforma Windows a Linux y migrar de ASP a PHP ? (


esto
lo
> digo porque a algunas personas que les he preguntado me dicen que


manejar
> miles de usuarios en plataforma Wiindows no es buena idea, mas no sé
porque)
>
> Por favor ayudenme con sus comentarios ya que no soy experto en la


matria
y
> necesito una solucion .
>
> Mil gracias por sus comentarios.
>
>


Respuesta Responder a este mensaje
#5 Manuel Vera
09/06/2005 - 20:55 | Informe spam
En el texto...

"Moncho" wrote in message
news:%23px$
Gracias Manuel,

El sistema esta compuesto por 15 paginas .ASP, en cada pagina manejo 15
variables de sesion para identificar al usuario, su perfir, y otras cosas,
cada variable almacena cadenas de texto que van desde 5 caracteres hasta


30.
No se si estas sean muchas variables de sesion com para que la aplicacion
sea muy pesada para miles de usuarios. Cual es su opinion, 15 son muchas?



R: Yo diria que son "demasiadas". Imaginate, la session por defecto tiene un
tiempo de vida de 20 minutos. El usuario "A" entra y carga las 15 variables
de session e inmaediatamente se va. Durante los restantes 19 minutos
permanecen en memoria 15 variables de session. Igualmente el usario B, C y D
hacen lo mismo, etc etc etc. Cuanto te das cuenta tu servidor web originó un
overflow de memoria. Lo ideal sería tener 1 o 2 variables de session que
sean ID de usuario. Ese ID debe ser un codigo en tu base de datos y lo
consultas cada vez que lo necesites. Si sabes ingles puedes leer este link:
http://msdn.microsoft.com/msdnmag/i...fault.aspx

No estoy manejando objetos en las variables de sesion porque no se como
hacerlo.



R: gracias a Dios. No te molestes en averiguarlo, pues es una mala práctica.


Las consultas que se hacen a la base de datos, cada una depende del


usuario,
basicamente los registros mostrados en cada consulta son los items que se
estan solicitando en un determinado pedido, luego en una pagina de


consulta
se pueden desplegar alrededor de 100 a 200 registros, que hacen referencia
cada uno al item solicitado ( el codigo y nombre del item, la cantidad
pedida, el valor unitario, los impuestos, el valor total), cada registro
pesa al rededor de 400 bites, luego una pagina que muestra 100 registros,
pesa alrededor de 40.000 bites osea aprox 40Kb. No se si esto sea mucho


para
una aplicacion para miles de usuarios, cual es su opinion ?



R: opino que 200 registros mostrados como listado son muchos. Deberías
restringir tus resultados de búsqueda a quizás, como mucho, 50 registros en
un solo recordset. Te recuerdo que no tengo idea de como funciona Fox.


Cada consulta esta hecha para tomar los datos de maximo dos tablas, la
mayoria de las consultas toman la informacion de una sola tabla.

Las conexiones a la base de datos, las abro solo cuando las necesito e
inmediatamente las he usado, las cierro. Por cada pagina .ASP tengo
basicamente dos conexiones : una con la cual valido al usuario y reviso
algunas de sus caracterirsticas contra la tabla de usuarios y otra para
traer la informacion de la tabla de pedidos.

Al abrir la primer conexion y consultar en la tabla de usuarios, enseguida
la cierro y procedia a abrir otra conexion para consultar la tabla de
pedidos, luego en ninguna de las paginas .ASp tengo al mimso tiempo


abiertas
dos conexiones, maxiomo ha de estar abierta solo una, la cual cierro


apenas
dejo de utilizarla. De igual manera con los recordsets, los utilizo y los
descargo de memoria con .Close e igualando la variable a Nothing, tal cual
ud. me indica.

De sus observaciones deduzco que a nivel de programacion no hay que hacer
nada especial para que el aplicativo sirva para miles de usuarios
SIMULTANEOS. En un pequeño curso que tome de java, el instructor explicaba
que Java si manejaba Multihilo y que ASP no lo hacia, luego el servidor se
portaba mucho mejor con aplicaciones web desarrolladas en java que en ASP,
pero el instructor explicaba que para poder manejar el Multihilo con java,
se requeria el manejo de una librerias especiales, lo cual afectaba la
manera como una aplicacion era programada. Sucede lo mismo con ASP ?



R: Aqui ya estas saliendo de mis breves conocimientos. Imagino que Java
tendrá algo de compilación lo que le permitirá en teoría ser más rápido que
la interpretación del código ASP.


- Si ASP no es multihilo, como puedo asegurar que mi sistema si ha de
soportar miles de usuarios simultaneos ?



R: Yo trabajo en un sitio de comercio electrónico bajo SQL Server y nos ha
ido bien. He tenido problemas por el abuso en el uso de las Session y por el
despliegue de recordsets con muchos registros. Al arreglar estos detalles la
aplicación web ha estado estable. Sin embargo aun se le hacen afinamientos y
tunning para ir mejorando cada vez más.

- En si quien (o que) se enecarga de que en un momento dado, cuando el
servidor esta recibiendo miles de solicitudes simultaneas, estas sean
procesadas correctamente sin que la maquina se cuelgue ?



R: Todo depende de la infraestructura tecnológica que apoye al servidor web
y a tu aplicación. Los portales grandes imagino yo que usan servidores
espejos que se distribuyen la carga de trabajo entre ellos según vaya
aumentando la cantidad de solicitudes HTTP. En mi caso estamos en un
servidor web compartido.

- Alguien me mencionop que en Windows2k y windows 2k3 server era necesario
trabajar con Transaction Server, pero no se que es esto y que implicaria
para mi actual aplicacion ? tendria que reescribirla por ocmpleto para


poder
utilizar el Transaction Server o no es necesario ?



R: nuevamente esto escapa de mi conocimiento. Mis flechazos irían por el
lado de la programación en 3 capas (uso de componentes COM) que son
"enlazados" o "enlazan" tu aplicación web con el motor de datos y el
Transaction Server (MTS) se encarga de conservar la integridad y
consistencia de los datos en las operaciones. Pero esos son flechazos de mi
parte.


Disculpe que le haga tantas preguntas, pero tengo miles de inquietudes.

Mil gracias por sus comentarios.




Salu2
MV
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida