Un simple serveur TCP écrit en python avec la librairie
standard (xml-rpc par exemple) est très lent à répondre
aux requêtes sous vista alors que le même code est beaucoup
plus rapide sous XP. Après quelques tests, j'ai observé
qu'un message de taille importante (par exemple 1 million de
caractères) met entre 1 et 10 fois plus de temps pour être
transmis sur vista par rapport à XP (tests faits en "loopback"
et non sur un réseau local).
Le firewall et autres logiciels liés à la protection réseau
ont auparavant été arrêtés.
Le même test réalisé sur une autre machine vista montre le même
résultat.
Quelqu'un a-t-il observé ce genre de comportement sur vista ?
Un simple serveur TCP écrit en python avec la librairie standard (xml-rpc par exemple) est très lent à répondre aux requêtes sous vista alors que le même code est beaucoup plus rapide sous XP. Après quelques tests, j'ai observé qu'un message de taille importante (par exemple 1 million de caractères) met entre 1 et 10 fois plus de temps pour être transmis sur vista par rapport à XP (tests faits en "loopback" et non sur un réseau local).
Le firewall et autres logiciels liés à la protection réseau ont auparavant été arrêtés.
Anti-virus aussi ? oui
Le même test réalisé sur une autre machine vista montre le même résultat.
Quelqu'un a-t-il observé ce genre de comportement sur vista ?
Google dit que oui.
http://www.google.fr/search?q=VISTA+network+slow
Le premier lien donne des idées: http://www.neoblog.co.uk/?p Le second met en cause MacAfee.
... pas lu les autres... et pas pressé de passer à VISTA ! J'avais déjà testé le premier et quand au 2ième, je ne l'ai pas..
A+, bons tests.
Bonjour à tous,
Un simple serveur TCP écrit en python avec la librairie standard
(xml-rpc par exemple) est très lent à répondre aux requêtes sous vista
alors que le même code est beaucoup plus rapide sous XP. Après quelques
tests, j'ai observé qu'un message de taille importante (par exemple 1
million de caractères) met entre 1 et 10 fois plus de temps pour être
transmis sur vista par rapport à XP (tests faits en "loopback" et non
sur un réseau local).
Le firewall et autres logiciels liés à la protection réseau ont
auparavant été arrêtés.
Anti-virus aussi ?
oui
Le même test réalisé sur une autre machine vista montre le même
résultat.
Quelqu'un a-t-il observé ce genre de comportement sur vista ?
Google dit que oui.
http://www.google.fr/search?q=VISTA+network+slow
Le premier lien donne des idées: http://www.neoblog.co.uk/?p
Le second met en cause MacAfee.
... pas lu les autres... et pas pressé de passer à VISTA !
J'avais déjà testé le premier et quand au 2ième, je ne l'ai pas..
Un simple serveur TCP écrit en python avec la librairie standard (xml-rpc par exemple) est très lent à répondre aux requêtes sous vista alors que le même code est beaucoup plus rapide sous XP. Après quelques tests, j'ai observé qu'un message de taille importante (par exemple 1 million de caractères) met entre 1 et 10 fois plus de temps pour être transmis sur vista par rapport à XP (tests faits en "loopback" et non sur un réseau local).
Le firewall et autres logiciels liés à la protection réseau ont auparavant été arrêtés.
Anti-virus aussi ? oui
Le même test réalisé sur une autre machine vista montre le même résultat.
Quelqu'un a-t-il observé ce genre de comportement sur vista ?
Google dit que oui.
http://www.google.fr/search?q=VISTA+network+slow
Le premier lien donne des idées: http://www.neoblog.co.uk/?p Le second met en cause MacAfee.
... pas lu les autres... et pas pressé de passer à VISTA ! J'avais déjà testé le premier et quand au 2ième, je ne l'ai pas..
A+, bons tests.
Olivier Ravard
Bonsoir !
Vista, c'est un excellent OS, une fois qu'on l'a configuré, pour l'adapter à ses besoins. As-tu : - désactivé le parefeu ? Tu indique "oui", mais as-tu arrêté aussi le filtrage IP ? - maintenu, configuré, ou désactivé l'UAC ? - configuré le centre de sécurité ? - fait le ménage dans les protocoles réseau (Vista gère IPv6 + IPv4 + la QOS + la virtualisation du réseau + etc.) - désactivé windows-defender ? - si tu as un antivirus, l'as-tu configuré pour qu'il laisse passer FTP sans analyses ? - as-tu installé les mises à jour ? Je vais passer tous ces points en revue et re-tester.
As-tu essayé mon script de test sur ta machine ?
Perso, j'estime que Vista est 5 % à 10 % plus lent qu'XP, mais offre beaucoup de possibilités supplémentaires, notamment en invite de commande.
Je n'ai pas testé de serveur FTP ; mais j'ai des scripts qui envoient du FTP (environ 10 à 20 Mo par jour). Cela va strictement à la même vitesse qu'avec XP ou W2K. Sur des transfert entre deux PC distants, on peut ne pas s'en apercevoir
car le débit en absolu est quand même raisonnable. C'est en loopback que ça devient gênant (calcul parallèle sur multi-core par exemple), là où le débit n'est pas limité par la ligne.
@+
Michel Claveau
Bonsoir !
Vista, c'est un excellent OS, une fois qu'on l'a configuré, pour
l'adapter à ses besoins.
As-tu :
- désactivé le parefeu ? Tu indique "oui", mais as-tu arrêté aussi le
filtrage IP ?
- maintenu, configuré, ou désactivé l'UAC ?
- configuré le centre de sécurité ?
- fait le ménage dans les protocoles réseau (Vista gère IPv6 + IPv4 +
la QOS + la virtualisation du réseau + etc.)
- désactivé windows-defender ?
- si tu as un antivirus, l'as-tu configuré pour qu'il laisse passer
FTP sans analyses ?
- as-tu installé les mises à jour ?
Je vais passer tous ces points en revue et re-tester.
As-tu essayé mon script de test sur ta machine ?
Perso, j'estime que Vista est 5 % à 10 % plus lent qu'XP, mais offre
beaucoup de possibilités supplémentaires, notamment en invite de commande.
Je n'ai pas testé de serveur FTP ; mais j'ai des scripts qui envoient du
FTP (environ 10 à 20 Mo par jour). Cela va strictement à la même vitesse
qu'avec XP ou W2K.
Sur des transfert entre deux PC distants, on peut ne pas s'en apercevoir
car le débit en absolu est quand même raisonnable. C'est en loopback que
ça devient gênant (calcul parallèle sur multi-core par exemple), là où le
débit n'est pas limité par la ligne.
Vista, c'est un excellent OS, une fois qu'on l'a configuré, pour l'adapter à ses besoins. As-tu : - désactivé le parefeu ? Tu indique "oui", mais as-tu arrêté aussi le filtrage IP ? - maintenu, configuré, ou désactivé l'UAC ? - configuré le centre de sécurité ? - fait le ménage dans les protocoles réseau (Vista gère IPv6 + IPv4 + la QOS + la virtualisation du réseau + etc.) - désactivé windows-defender ? - si tu as un antivirus, l'as-tu configuré pour qu'il laisse passer FTP sans analyses ? - as-tu installé les mises à jour ? Je vais passer tous ces points en revue et re-tester.
As-tu essayé mon script de test sur ta machine ?
Perso, j'estime que Vista est 5 % à 10 % plus lent qu'XP, mais offre beaucoup de possibilités supplémentaires, notamment en invite de commande.
Je n'ai pas testé de serveur FTP ; mais j'ai des scripts qui envoient du FTP (environ 10 à 20 Mo par jour). Cela va strictement à la même vitesse qu'avec XP ou W2K. Sur des transfert entre deux PC distants, on peut ne pas s'en apercevoir
car le débit en absolu est quand même raisonnable. C'est en loopback que ça devient gênant (calcul parallèle sur multi-core par exemple), là où le débit n'est pas limité par la ligne.
@+
Michel Claveau
Méta-MCI (MVP)
Bonjour !
Dans le même genre, et pour quelques postes (de) clients, j'ai fait ce batch : netsh interface tcp set global autotuninglevel=disabled netsh interface tcp set global rss=disabled netsh interface tcp set global congestionprovider=none netsh interface tcp set global ecncapability=disabled
Dans certains cas, ça accélère nettement le réseau. Mais, ce n'est pas systématique, car ça dépend de l'architecture et des composants du LAN.
@-salutations
Michel Claveau
Bonjour !
Dans le même genre, et pour quelques postes (de) clients, j'ai fait ce
batch :
netsh interface tcp set global autotuninglevel=disabled
netsh interface tcp set global rss=disabled
netsh interface tcp set global congestionprovider=none
netsh interface tcp set global ecncapability=disabled
Dans certains cas, ça accélère nettement le réseau. Mais, ce n'est pas
systématique, car ça dépend de l'architecture et des composants du LAN.
Dans le même genre, et pour quelques postes (de) clients, j'ai fait ce batch : netsh interface tcp set global autotuninglevel=disabled netsh interface tcp set global rss=disabled netsh interface tcp set global congestionprovider=none netsh interface tcp set global ecncapability=disabled
Dans certains cas, ça accélère nettement le réseau. Mais, ce n'est pas systématique, car ça dépend de l'architecture et des composants du LAN.
@-salutations
Michel Claveau
Méta-MCI \(MVP\)
Bonjour !
As-tu essayé mon script de test sur ta machine ?
Je viens juste d'essayer. Mais, au premier essai, ça plante. Je vais regarder un peu le code-source...
@+
MCI
Bonjour !
As-tu essayé mon script de test sur ta machine ?
Je viens juste d'essayer. Mais, au premier essai, ça plante. Je vais
regarder un peu le code-source...
Je viens juste d'essayer. Mais, au premier essai, ça plante. Je vais regarder un peu le code-source...
@+
MCI
Méta-MCI \(MVP\)
Re !
J'ai séparé le code en deux parties : client et serveur. J'ai lancé le serveur dans une console, et le client dans une autre. Voilà ce qu'affiche le serveur, sur ma machine : time = 0.0469999313354 time = 0.0309998989105 time = 0.0319998264313 time = 0.0309998989105 time = 0.0310001373291 time = 0.0320000648499 time = 0.0310001373291 time = 0.0469999313354 time = 0.0460000038147 time = 0.0310001373291
En effet, ton code non séparé et non modifié affiche 10 fois : Original exception was: Unhandled exception in thread started by Error in sys.excepthook:
Si ça peut t'aider...
@+
Michel Claveau
Re !
J'ai séparé le code en deux parties : client et serveur. J'ai lancé le
serveur dans une console, et le client dans une autre.
Voilà ce qu'affiche le serveur, sur ma machine :
time = 0.0469999313354
time = 0.0309998989105
time = 0.0319998264313
time = 0.0309998989105
time = 0.0310001373291
time = 0.0320000648499
time = 0.0310001373291
time = 0.0469999313354
time = 0.0460000038147
time = 0.0310001373291
En effet, ton code non séparé et non modifié affiche 10 fois :
Original exception was:
Unhandled exception in thread started by
Error in sys.excepthook:
J'ai séparé le code en deux parties : client et serveur. J'ai lancé le serveur dans une console, et le client dans une autre. Voilà ce qu'affiche le serveur, sur ma machine : time = 0.0469999313354 time = 0.0309998989105 time = 0.0319998264313 time = 0.0309998989105 time = 0.0310001373291 time = 0.0320000648499 time = 0.0310001373291 time = 0.0469999313354 time = 0.0460000038147 time = 0.0310001373291
En effet, ton code non séparé et non modifié affiche 10 fois : Original exception was: Unhandled exception in thread started by Error in sys.excepthook:
Si ça peut t'aider...
@+
Michel Claveau
Olivier Ravard
Bonjour !
As-tu essayé mon script de test sur ta machine ?
Je viens juste d'essayer. Mais, au premier essai, ça plante. Je vais regarder un peu le code-source... C'est normal car threads du server se plante lorsque l'appli quitte
et que les clients n'ont pas fini la transaction. Il faut lancer le script avec python -i nom_du_script.py
@+
MCI
Bonjour !
As-tu essayé mon script de test sur ta machine ?
Je viens juste d'essayer. Mais, au premier essai, ça plante. Je vais
regarder un peu le code-source...
C'est normal car threads du server se plante lorsque l'appli quitte
et que les clients n'ont pas fini la transaction.
Il faut lancer le script avec python -i nom_du_script.py
Je viens juste d'essayer. Mais, au premier essai, ça plante. Je vais regarder un peu le code-source... C'est normal car threads du server se plante lorsque l'appli quitte
et que les clients n'ont pas fini la transaction. Il faut lancer le script avec python -i nom_du_script.py
@+
MCI
Olivier Ravard
Re !
J'ai séparé le code en deux parties : client et serveur. J'ai lancé le serveur dans une console, et le client dans une autre. Voilà ce qu'affiche le serveur, sur ma machine : time = 0.0469999313354 time = 0.0309998989105 time = 0.0319998264313 time = 0.0309998989105 time = 0.0310001373291 time = 0.0320000648499 time = 0.0310001373291 time = 0.0469999313354 time = 0.0460000038147 time = 0.0310001373291
Ah ! Je crois que j'ai un problème avec mon vista. Voici les résultats :
time = 0.0520000457764 time = 0.302999973297 time = 0.496000051498 time = 0.389000177383 time = 1.39600014687 time = 0.759000062943 time = 1.38300013542 time = 2.19500017166 time = 2.12299990654 time = 1.8140001297 !!!
En effet, ton code non séparé et non modifié affiche 10 fois : Original exception was: Unhandled exception in thread started by Error in sys.excepthook:
C'est normal. Voir la réponse dans le message précédent.
Si ça peut t'aider...
@+
Michel Claveau
Re !
J'ai séparé le code en deux parties : client et serveur. J'ai lancé le
serveur dans une console, et le client dans une autre.
Voilà ce qu'affiche le serveur, sur ma machine :
time = 0.0469999313354
time = 0.0309998989105
time = 0.0319998264313
time = 0.0309998989105
time = 0.0310001373291
time = 0.0320000648499
time = 0.0310001373291
time = 0.0469999313354
time = 0.0460000038147
time = 0.0310001373291
Ah ! Je crois que j'ai un problème avec mon vista. Voici les résultats :
time = 0.0520000457764
time = 0.302999973297
time = 0.496000051498
time = 0.389000177383
time = 1.39600014687
time = 0.759000062943
time = 1.38300013542
time = 2.19500017166
time = 2.12299990654
time = 1.8140001297
!!!
En effet, ton code non séparé et non modifié affiche 10 fois :
Original exception was:
Unhandled exception in thread started by
Error in sys.excepthook:
C'est normal. Voir la réponse dans le message précédent.
J'ai séparé le code en deux parties : client et serveur. J'ai lancé le serveur dans une console, et le client dans une autre. Voilà ce qu'affiche le serveur, sur ma machine : time = 0.0469999313354 time = 0.0309998989105 time = 0.0319998264313 time = 0.0309998989105 time = 0.0310001373291 time = 0.0320000648499 time = 0.0310001373291 time = 0.0469999313354 time = 0.0460000038147 time = 0.0310001373291
Ah ! Je crois que j'ai un problème avec mon vista. Voici les résultats :
time = 0.0520000457764 time = 0.302999973297 time = 0.496000051498 time = 0.389000177383 time = 1.39600014687 time = 0.759000062943 time = 1.38300013542 time = 2.19500017166 time = 2.12299990654 time = 1.8140001297 !!!
En effet, ton code non séparé et non modifié affiche 10 fois : Original exception was: Unhandled exception in thread started by Error in sys.excepthook:
C'est normal. Voir la réponse dans le message précédent.
Si ça peut t'aider...
@+
Michel Claveau
Méta-MCI \(MVP\)
Bonsoir !
Que se passe-t'il, si, pour laisser le couple Python/Vista gérer ses threads/sockets, tu fais un client comme ça :
for i in range(10): print i, time.sleep(0.04) c.send()
?
@+
Michel Claveau
Bonsoir !
Que se passe-t'il, si, pour laisser le couple Python/Vista gérer ses
threads/sockets, tu fais un client comme ça :
for i in range(10):
print i,
time.sleep(0.04)
c.send()
Que se passe-t'il, si, pour laisser le couple Python/Vista gérer ses threads/sockets, tu fais un client comme ça :
for i in range(10): print i, time.sleep(0.04) c.send()
?
@+
Michel Claveau
Olivier Ravard
Bonsoir !
Que se passe-t'il, si, pour laisser le couple Python/Vista gérer ses threads/sockets, tu fais un client comme ça :
for i in range(10): print i, time.sleep(0.04) c.send() Le premier coup c'était mieux, mais ensuite c'est pareil...
Comme si il avait un problème de pile.
En fait, j'ai remarqué que ce problème arrive pour les gros packets. Pour les plus petits, la vitesse est quasi identique à celle d'XP. Pour contourner le problème j'ai donc fait qq chose du style :
tant qu'il y a des données à transmettre: j'envoie un petit packet (tailleQ2000 caractères) j'attend la confirmation que ce packet a bien été reçu
mais le problème n'est que contourné...
?
@+
Michel Claveau
Bonsoir !
Que se passe-t'il, si, pour laisser le couple Python/Vista gérer ses
threads/sockets, tu fais un client comme ça :
for i in range(10):
print i,
time.sleep(0.04)
c.send()
Le premier coup c'était mieux, mais ensuite c'est pareil...
Comme si il avait un problème de pile.
En fait, j'ai remarqué que ce problème arrive pour les gros
packets. Pour les plus petits, la vitesse est quasi identique
à celle d'XP. Pour contourner le problème j'ai donc fait qq
chose du style :
tant qu'il y a des données à transmettre:
j'envoie un petit packet (tailleQ2000 caractères)
j'attend la confirmation que ce packet a bien été reçu
Que se passe-t'il, si, pour laisser le couple Python/Vista gérer ses threads/sockets, tu fais un client comme ça :
for i in range(10): print i, time.sleep(0.04) c.send() Le premier coup c'était mieux, mais ensuite c'est pareil...
Comme si il avait un problème de pile.
En fait, j'ai remarqué que ce problème arrive pour les gros packets. Pour les plus petits, la vitesse est quasi identique à celle d'XP. Pour contourner le problème j'ai donc fait qq chose du style :
tant qu'il y a des données à transmettre: j'envoie un petit packet (tailleQ2000 caractères) j'attend la confirmation que ce packet a bien été reçu
mais le problème n'est que contourné...
?
@+
Michel Claveau
Méta-MCI \(MVP\)
Bonjour !
Problème de pile
C'est possible. D'autant plus que Vista est limité, par défaut à 10 connexions TCP/IP simultanées (y compris celles utilisées par l'OS, skype, la mise à jour anti-virus, etc.) Perso, j'ai (aussi) fait sauter cette limite.
Perso, j'ai opté pour Twisted-Matrix, car, même si c'est un peu plus lent dans l'absolu, toute la mécanique des connexions simultanées est correctement gérée.
@+
MCI
Bonjour !
Problème de pile
C'est possible. D'autant plus que Vista est limité, par défaut à 10
connexions TCP/IP simultanées (y compris celles utilisées par l'OS,
skype, la mise à jour anti-virus, etc.)
Perso, j'ai (aussi) fait sauter cette limite.
Perso, j'ai opté pour Twisted-Matrix, car, même si c'est un peu plus
lent dans l'absolu, toute la mécanique des connexions simultanées est
correctement gérée.
C'est possible. D'autant plus que Vista est limité, par défaut à 10 connexions TCP/IP simultanées (y compris celles utilisées par l'OS, skype, la mise à jour anti-virus, etc.) Perso, j'ai (aussi) fait sauter cette limite.
Perso, j'ai opté pour Twisted-Matrix, car, même si c'est un peu plus lent dans l'absolu, toute la mécanique des connexions simultanées est correctement gérée.