Experiencias de RDDs lentos

Re: Experiencias de RDDs lentos

Postby thefull » Fri May 30, 2014 2:15 pm

Muy buenas

Explico experiencia de hoy mismo.
Servidor: MS Server 2003 SP2 , a 32 bits.
Cliente: Windows 7 Pro 64bits

¿ Problema ? "Es más lento que el caballo del malo."
He realizado tanto en el server como en el cliente, según lo que comentas y no ha funcionado, aparentemente.

He aplicado esto en el Windows 7 Pro(*);
netsh int tcp set heuristics disabled
netsh int tcp set global autotuninglevel=disabled

No se notaba nada, así que toca reinicar.

El tema es que al reiniciar la máquina, la mejora a sido brutal, y no sé si es los cambios de SMB2 + lo que aplico.
La velocidad de la aplicación sobre la red, podéis verlo facilmente con el ProcessXP, era entre 20Kb y 200Kb, en la unidad mapeada.
Con los parches, sube de entre 500Kb a 1Mb, y auque es lento , es más aceptable.
He probado la función TurnShared(), y no se aprecia mejora.

(*)http://social.technet.microsoft.com/Forums/windowsserver/en-US/a543c608-91b0-4a27-95a2-f5e24e36b5cc/windows-7-network-connection-to-server2003-slow-browser-and-slow-sql-query?forum=winserverPN
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Experiencias de RDDs lentos

Postby Antonio Linares » Fri May 30, 2014 2:31 pm

Rafa,

Si, Michel Driessen ha confirmado que a él tambien le solucionó el problema el desactivar el SMB2, y a Dutch igual.

Asi que bienvenida sea esa solución para quienes sufren ese problema :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42078
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Experiencias de RDDs lentos

Postby ACC69 » Fri May 30, 2014 3:10 pm

Antonio Linares wrote:Rafa,

Si, Michel Driessen ha confirmado que a él tambien le solucionó el problema el desactivar el SMB2, y a Dutch igual.

Asi que bienvenida sea esa solución para quienes sufren ese problema :-)



Hola buenos dias , disculpen mi intromision, peroo...alguna vez han pensado que el sistema operativo server 2003 o 2008, no siempre es la culpable de la lentitud de datos ?

Les digo esto, porque anteriormente en la empresa donde trabajaba,nos recomendaron un HP tipo servidor de doble nucleo, con 64 bits, y resulta que fue un desastre y si era muy lento, a pesar que tenia 8 gb de memoria ram, capacidad de 500 gb disco duro, doble, uno que funciona como espejo en caso que fallara el primero, y entonces me puse a pensar que el problema radicaba en el tipo de hardware el procesador, que no recuerdo que tipo de procesador era, y a raiz de eso, ya la gente ya no soportaba ver tanta lentitud en los reportes,procesos, via remota, etc etc . y constantemente tenian quejas y caidas de red, y fue cuando se decidio adquirir otra marca de servidores, que recuerdo se compro una Dell Power Edge T300, y ahi se mejoró mucho la velocidad y ya la gente ya no se quejaba tanto , no habia ni caidas de redes, es por eso que muchas veces, no siempre el sistema operativo es la culpable, bueno segun mi punto de vista, hasta donde yo se.
Y como les comente anteriormente, mi sistema de cuentas por pagar a proveedores, funciona sin problemas con dbfs y cdx, y por otro lado, el otro amigo, que menciono que trabajan via inalambrica, NO ES MUY RECOMENDABLE, TRABAJAR EN ESA PLATAFORMA VIA INALAMBRICA, y mas si son aplicaciones administrativas, y peor si es ntx, es cuando se alenta la aplicacion en redes y los demas sabran, que no es recomendable estar conectados via inalambrica,pero en fin,como dije es mi punto de vista.

Saludos y buen dia.!

Atte: Adrian C. C.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Experiencias de RDDs lentos

Postby lucasdebeltran » Fri May 30, 2014 4:36 pm

Rafa,

Por favor, ¿cómo has desabilitado SMB2 exactamente?.

Muchas gracias.
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: Experiencias de RDDs lentos

Postby thefull » Fri May 30, 2014 4:58 pm

Buenas,

>Hola buenos dias , disculpen mi intromision, peroo...alguna vez han pensado que el sistema operativo server 2003 o 2008, no siempre es la culpable de la lentitud de datos ?
Hice una prueba de copia, desde Windows 7 al server, un fichero de 50 megas, tardaba 25 segundos.
Con el parche, tarde menos de 2 segundos.

Ojo, que no llega ni por asomo a las velocidad a la que tendría que ir, pero al menos, "no se arrastra como un gusano" ;-)
ATENTO, la WIFI de la maquina , si la tiene, DESACTIVARLAS!!

Saludos

El codigo que aplico en el server y workstation

Code: Select all  Expand view
#define  HKEY_LOCAL_MACHINE      2147483650

//---------------------------------------------------------------------------//

function SmbOff()

   LOCAL oReg, cName, uVar

   oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters" )

   // Call Set with an empty string to access the default key

   oReg:Set( "FileInfoCacheLifetime", 0 )
   oReg:Set( "FileNotFoundCacheLifetime", 0 )
   oReg:Set( "DirectoryCacheLifetime", 0 )

   oReg:Close()

   oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" )

   // Call Set with an empty string to access the default key

   oReg:Set( "Smb2", 0 )

   oReg:Close()

   Alert( "Windows registry updated!" )

return nil
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Experiencias de RDDs lentos

Postby lucasdebeltran » Fri May 30, 2014 5:19 pm

Rafa,

Muchas gracias.

Mira esta función nativa de Harbour:

Code: Select all  Expand view
FUNCTION win_osNetRegOk( lSetIt, lDoVista )


   LOCAL bRetVal := .T.
   LOCAL cKeySrv
   LOCAL cKeyWks


   hb_default( @lSetIt, .F. )
   hb_default( @lDoVista, .T. )


   IF ! lDoVista .AND. hb_osIsWinVista()
      /* do nothing */
   ELSEIF hb_osIsWin9x()
      bRetVal := win_regQuery( WIN_HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\VxD\VREDIR", "DiscardCacheOnOpen", 1, lSetIt )
   ELSE
      cKeySrv := "System\CurrentControlSet\Services\LanmanServer\Parameters"
      cKeyWks := "System\CurrentControlSet\Services\LanmanWorkStation\Parameters"


      IF lSetIt
         lSetIt := ! hb_osIsWinNT() .OR. wapi_IsUserAnAdmin()
      ENDIF


      /* Server settings */
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "CachedOpenLimit", 0, lSetIt )
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "EnableOpLocks", 0, lSetIt ) /* Q124916 */
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "EnableOpLockForceClose", 1, lSetIt )
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SharingViolationDelay", 0, lSetIt )
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SharingViolationRetries", 0, lSetIt )


      IF hb_osIsWinVista()
         /* If SMB2 is enabled turning off oplocks does not work, so SMB2 is required to be turned off on Server. */
         bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SMB2", 0, lSetIt )
      ENDIF


      /* Workstation settings */
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UseOpportunisticLocking", 0, lSetIt )
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "EnableOpLocks", 0, lSetIt )
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "EnableOpLockForceClose", 1, lSetIt )
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UtilizeNtCaching", 0, lSetIt )
      bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UseLockReadUnlock", 0, lSetIt )


      IF hb_osIsWinVista()
         bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "FileInfoCacheLifetime", 0, lSetIt )
         bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "FileNotFoundCacheLifetime", 0, lSetIt )
         bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "DirectoryCacheLifetime", 0, lSetIt )
      ENDIF


      IF hb_osIsWin2K()
         bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\MRXSmb\Parameters", "OpLocksDisabled", 1, lSetIt )
      ENDIF
   ENDIF


   RETURN bRetVal
 
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: Experiencias de RDDs lentos

Postby Antonio Linares » Fri May 30, 2014 6:04 pm

Lucas,

La has probado tu ? Se nota diferencia ?

gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42078
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Experiencias de RDDs lentos

Postby AngelSalom » Fri May 30, 2014 6:32 pm

Siguiendo el hilo con interés ... este lunes haré algunas pruebas porque también me encuentro con algunos escenarios similares.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Experiencias de RDDs lentos

Postby lucasdebeltran » Sat May 31, 2014 11:23 am

Antonio,

Sí, he probado la función de Harbour y funciona, hace lo mismo que el código que ha posteado Rafa.

Me toca probar los otros comandos que amablemente ha señalado Rafa.
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: Experiencias de RDDs lentos

Postby karinha » Mon Jun 02, 2014 1:45 pm

Lucas, esta function funciona con xHarbour ó solo con Harbour??

Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Experiencias de RDDs lentos

Postby elvira » Tue Jun 03, 2014 2:19 pm

Antonio,

Si se trabaja en red local y las estaciones, añaden registros, editan, borran, etc, si se pone dbInfo( DBI_SHARED, .F. ) entonces ¿se corromperán los datos?.

Muy agradecida!!
elvira
 
Posts: 516
Joined: Fri Jun 29, 2012 12:49 pm

Re: Experiencias de RDDs lentos

Postby Antonio Linares » Tue Jun 03, 2014 6:13 pm

Elvira,

No lo se, nunca la he usado.

Aqui está la documentación y hay usuarios aqui en los foros que la han usado:
http://www.ousob.com/ng/cmx/ngfe93.php

La idea es solo usarlo para leer, pero mientras el índice esta inactivo existe el riesgo de que los datos hayan cambiado, en cuyo caso, de editar la información leida habría que comprobar que la DBF no se haya actualizado (por ejemplo comprobando su ultima fecha y hora de actualización). Pero esto es solo una suposición mia.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42078
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Experiencias de RDDs lentos

Postby karinha » Tue Jun 03, 2014 6:47 pm

Maestro, no comprendo, como que esta function va aumentar la velocidad de apertura de los bancos de datos?

Ó estoy haciendo algo errado?

Code: Select all  Expand view

#include "FiveWin.ch"
#include "DbInfo.ch"

ANNOUNCE RDDSYS
REQUEST DBFCDX, DBFFPT
ANNOUNCE FPTCDX

STATIC lOnOff := .F.

FUNCTION MAIN()

   RDDSETDEFAULT("DBFCDX")

   USE TEST //HAS NO MEMO FIELD
   INDEX ON Field->ONE TO TEST
   CLOSE DATABASES

   USE TEST INDEX TEST ALIAS TEST SHARED NEW

   ? DBInfo( DBI_FILEHANDLE ) //OK

   ? DBInfo( DBI_MEMOHANDLE ) //HANGS HERE

   // ? "OK"

   IF TurnShared( lOnOff )  // se Shared = Retorna .T.
      ? [Shared]
   ELSE // Retorna .F.
      ? [Not Shared]
   ENDIF

   QUIT

RETURN NIL

function TurnShared( lOnOff )
 
return dbInfo( DBI_SHARED, lOnOff )
 



Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Experiencias de RDDs lentos

Postby karinha » Tue Jun 03, 2014 8:18 pm

// Senores como hacer esto en windows 7 e xHarbour?
// Senores como hacer esto en windows 8 e xHarbour?

Code: Select all  Expand view

#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------//

function Main()


   If !WIN_OSNETREGOK() //Precisa direitos ADM

      If !WIN_OSNETREGOK(.t.,.t.) //primeiro .t. é para ajustar XP/W98..., o segundo ajusta no vista.

         MsgInfo('Registro do windows não ajustado !')

      EndIf

   EndIf

RETURN NIL

#include "common.ch"
#include "directry.ch"

#define WIN_HKEY_LOCAL_MACHINE 0
#define WIN_HKEY_CLASSES_ROOT 1
#define WIN_HKEY_CURRENT_USER 2
#define WIN_HKEY_CURRENT_CONFIG 3
#define WIN_HKEY_LOCAL_MACHINE 4
#define WIN_HKEY_USERS 5

/* NOTE: To change any of these registry settings
    Administrator rights are required by default in Windows. [vszakats] */


FUNCTION WIN_OSNETREGOK( lSetIt, lDoVista )

   LOCAL bRetVal := .T.
   LOCAL cKeySrv
   LOCAL cKeyWks

   IF ! ISLOGICAL( lSetIt )
      lSetIt := .F.
   ENDIF

   IF ! ISLOGICAL( lDoVista )
      lDoVista := .T.
   ENDIF

   IF ! lDoVista .AND. Os_IsWinVISTA() //win_osIsVistaOrUpper()
      /* do nothing */
   ELSEIF Os_IsWin9X() // hb_osIsWin9x()
      bRetVal := QueryRegistry( WIN_HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\VxD\VREDIR", "DiscardCacheOnOpen", 1, lSetIt )
   ELSE
     cKeySrv := "System\CurrentControlSet\Services\LanmanServer\Parameters"
     cKeyWks := "System\CurrentControlSet\Services\LanmanWorkStation\Parameters"

     IF lSetIt
       lSetIt := ! Os_IsWinNT() .OR. os_IsUserAnAdmin() //wapi_IsUserAnAdmin()
     ENDIF

     /* Server settings */
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "CachedOpenLimit", 0, lSetIt )
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "EnableOpLocks", 0, lSetIt ) /* Q124916 */
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "EnableOpLockForceClose", 1, lSetIt )
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SharingViolationDelay", 0, lSetIt )
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SharingViolationRetries", 0, lSetIt )

     IF Os_IsWinVISTA() // win_osIsVistaOrUpper()
         /* If SMB2 is enabled turning off oplocks does not work, so SMB2 is required to be turned off on Server. */
         bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SMB2", 0, lSetIt )
     ENDIF

     /* Workstation settings */
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UseOpportunisticLocking", 0, lSetIt )
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "EnableOpLocks", 0, lSetIt )
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "EnableOpLockForceClose", 1, lSetIt )
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UtilizeNtCaching", 0, lSetIt )
     bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UseLockReadUnlock", 0, lSetIt )

     IF Os_IsWinVISTA() //win_osIsVistaOrUpper()

        bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "FileInfoCacheLifetime", 0, lSetIt )
        bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "FileNotFoundCacheLifetime", 0, lSetIt )
        bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "DirectoryCacheLifetime", 0, lSetIt )

     ENDIF

     IF Os_IsWinNT() //hb_osIsWin2K()

        bRetVal := bRetVal .AND. QueryRegistry( WIN_HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\MRXSmb\Parameters", "OpLocksDisabled", 1, lSetIt )

     ENDIF

     // Senores como hacer esto en windows 7 e xHarbour?
     IF Os_IsWin7() //hb_osIsWin7()

     ENDIF

     // Senores como hacer esto en windows 8 e xHarbour?
     IF Os_IsWin8() //hb_osIsWin8()

     ENDIF

   ENDIF

RETURN bRetVal

FUNCTION WIN_OSNETVREDIROK( /* @ */ nResult )

   LOCAL aFiles

   nResult := 0

   IF Os_IsWin9X() // hb_osIsWin9x()

      aFiles := Directory( GetEnv( "WINDIR", "C:\WINDOWS" ) + "\SYSTEM\VREDIR.VXD" ) /* Check for faulty files. */

      IF ! Empty( aFiles )

         IF aFiles[ 1 ][ F_SIZE ] == 156749 .AND. aFiles[ 1 ][ F_TIME ] == "11:11:10"

            nResult := 1111

         ELSEIF aFiles[ 1 ][ F_SIZE ] == 140343 .AND. aFiles[ 1 ][ F_TIME ] == "09:50:00"

            nResult := 950

         ENDIF

      ENDIF

   ENDIF

RETURN Empty( nResult )
 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Experiencias de RDDs lentos

Postby lucasdebeltran » Wed Jun 04, 2014 12:16 pm

Joao,

Creo que xHarbour tiene todas esas funciones nativas, pero yo ya abandoné xHarbour.

Te recomiendo usar siempre las funciones nativas.

Además, la lista de xHarbour es muy amable y ayudan muchísimo, a diferencia de la chulería y prepotencia que tienen en la lista de Harbour, alguno de cuyos líderes parece todo un Nazi.
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Julio Cepeda and 28 guests