Setenv display, putty, exceed, ...

Résolu/Fermé
oliveiro69 Messages postés 5 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 juillet 2009 - 30 juin 2009 à 07:40
mamiemando Messages postés 33643 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 avril 2025 - 1 juil. 2009 à 12:46
Bonjour,
désolé par avance si mes explications ne sont pas assez précises ou si mon vocabulaire est inexacte mais je ne connais vraiment pas grand chose au problème que je vais vous exposer.

Voilà, nous effectuons au boulot un grand nombre de calculs et nous les visualisons par l'intermédiaire du logiciel VisIt le tout sur des machines Linux.

A présent, nous voulons utiliserle logiciel Exceed pour que tous les utilisateurs puissent bénéficier du logiciel de visualisation et de l'environnement Linux en général.
Exceed fonctionne parfaitement avec la plupart des applications Linux. Malgré de gros ralentissements, le logiciel fonctionne "à peu près" sur VisIt (le logiciel qui m'intéresse moi), sauf que lorsque le calcul devient un peu trop lourd, notamment des animations graphiques, Exceed plante et donc fait planter toutes les applications Linux par la même occasion.
A noter que ce problème est valable sur tous les PC (Windows) sauf sur celui d'un collègue qui possède (comme par hasard ?) la carte graphique la plus puissante.
D'où ma première question est-ce que cela peut venir de cartes graphiques pas assez performantes ?

Ca, c'est quand j'utilise le module ssh client de Exceed.
Maintenant, si j'utilise putty (que l'on ne doit pas utiliser officiellement au boulot)
setenv DISPLAY nom_machine:0.0 puis utilisation émulation Exceed, tout fonctionne parfaitement, jms de plantage et il n'y a aucun ralentissements,
d'où ma deuxième question, est-ce que ma première question tient la route ?

J'ai creusé encore un peu en affichant la variable DISPLAY lorsque j'utilise seulement Exceed :
localhost:10.0 (j'ai mis 10 mais c'est le premier numéro libre qu'il trouve je pense)
donc je l'ai changé en tapant exactement la même commande que pour Putty:
setenv DISPLAY nom_machine:0.0 et pas de problème, ça marche nickel, plus de ralentissements, plus de plantage.
D'où ma troisième question, pourquoi ça marche quand je fais cette manip ?
Et quatrième question, n'ya t'il pas un risque de "conflit" (c'est peut-être une question bête) si tout le monde fait cette manip sur son PC (setenv DISPLAY nom_de_sa_machine:0.0) pour se connecter à la même machine Linux ?

Personnellement, je n'y comprend rien du tout mais j'aimerai comprendre pouquoi ça marche et savoir si on peut valider cette méthode.
En vous remerciant d'avance et en espérant que c'était pas trop long,
Olivier.
A voir également:

5 réponses

mamiemando Messages postés 33643 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 avril 2025 7 845
30 juin 2009 à 09:44
D'où ma première question est-ce que cela peut venir de cartes graphiques pas assez performantes ?

Honnêtement je suis un peu surprise que le plantage provienne d'exceed (peu importe la lourdeur de l'application) puisque que concrètement il ne fait que dessiner une fenêtre, tout le calcul reste déporté. Si tu lances le calcul sur le PC linux, est ce que celui-ci aboutit ?

De l'expérience que j'en avais eu, les ralentissements proviennent en général plus de la qualité de la connexion entre le PC windows et le PC linux que d'exceed lui-même.

Ceci dit les symptômes que tu décrives laisse penser que ton hypothèse est tout à fait crédible même si je ne l'ai jamais observée en pratique.

D'où ma deuxième question, est-ce que ma première question tient la route ?

A priori ssh ne devrait (en plus de sécuriser la connexion) que ralentir le transfert entre le PC windows et le PC linux mais pas provoquer un plantage. C'est d'ailleurs probablement sans doute la principale cause du ralentissement que tu observes car les données doivent être déchiffrées à chaque extrémités de la session. Une solution serait peut être d'utiliser un protocole plus adapté que ssh, par exemple vnc.

D'où ma troisième question, pourquoi ça marche quand je fais cette manip ?

Je ne suis pas sûr d'avoir compris mais pour faire simple, quand tu établis une connexion ssh avec X11 forwarding (ssh -XC ou ssh- YC) tu rediriges implicitement l'affichage. Le rôle de la variable d'environnement DISPLAY est de rediriger l'affichage quand cela n'a pas été fait par un autre biais.

Il n'y a pas de risque de conflit car les variables d'environnements sont spécifiques à ton shell. Pour t'en convaincre, tape :
env

... tu verras que tu as plein de variables "personnalisées" comme HOME et USER.

Pour résoudre ton problème, je pense que la solution la plus adaptée serait de te connecter à ton serveur linux via VNC (il existe des clients pour windows je crois) et installer un serveur VNC côté linux.
http://doc.ubuntu-fr.org/vnc

Bonne chance
1
mamiemando Messages postés 33643 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 avril 2025 7 845
30 juin 2009 à 15:17
Mais on peut très bien être huit utilisateurs sur un poste Linux à 16 procs.

Ah c'est vrai qu'avec VNC je ne sais pas si tu vas pouvoir ouvrir une nouvelle session :s Quand je l'utilise c'est toujours pour prendre le contrôle à distance. Il faudrait investiguer pour voir si c'est cuit ou pas. Mais il est toujours possible de lancer plusieurs serveurs X en parallèle sur une même machine.

La vraie question c'est est ce que tous ces utilisateurs ont réellement besoin d'une session graphique. Sous linux on peut faire pas mal de choses juste en mode texte (en fait tout sauf piloter une interface graphique !). Je ne connais pas ton logiciel mais peut être est-il utilisable de cette manière ?

(bien que j'ai pas bien compris ce qu'est le X11 forwarding)

X = graphics sous linux. 11 c'est la version. Ca veut donc dire "envoyer des fenêtres graphiques" dans le tuyau. Par défaut, ssh ne rappatrie que du texte.

pourquoi définir implicitement la variable DISPLAY nous cause autant de ralentissements

A mon avis les principales causes de ralentissement sont :
1) le fait que le bureau est déporté,
2) le fait que les données sont chiffrées par ssh (d'où l'idée de VNC)

Ce n'est pas lié à ta variable DISPLAY en elle-même. A mon avis le fait que Exceed plante sur certaines machines et pas d'autre prouve que le problème est côté poste client (bug dans exceed, problème de carte vidéo, virus etc...).

Pour ssh tu peux essayer de te connecter avec les options -YC ou -XC (pour compresser les données) si ton client ssh le permet (par exemple openssh-client de cygwin). Sinon à ta place j'essayerais de chercher un peu si on peut faire du multi-user avec VNC qui me parait une solution plus adéquate si elle est possible.

Bonne chance
1
oliveiro69 Messages postés 5 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 juillet 2009
30 juin 2009 à 13:48
Merci pour cette réponse,

en réalité, si j'ai bien compris ce qu'est vnc, je ne peux pas l'utiliser. On utilise les postes Linux car on ne pourra jamais faire les calculs qu'on effectue sur nos postes Windows. Mais on peut très bien être huit utilisateurs sur un poste Linux à 16 procs. Si j'ai bien compris, avec vnc, un seul utilisateur prend le contrôle total d'un ordi ce qui ne peut nous convenir.

Pour ma troisième question, j'ai bien compris en trifouillant sur le net que Exceed faisait du X11 forwarding (bien que j'ai pas bien compris ce qu'est le X11 forwarding) mais alors :
first question : pourquoi définir implicitement la variable DISPLAY nous cause autant de ralentissements (voire plantage)?
second question : le seul intérêt d'utiliser le X11 forwarding est-il de ne pas avoir à taper : setenv DISPLAY ... ?

Et pis j'allias oublier, le logiciel n'a aucun souci sur le poste Linux sinon on ne se serait même pas aventurer dans Exceed.

Merci encore pour ces réponses.
Olivier.
0
oliveiro69 Messages postés 5 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 juillet 2009
1 juil. 2009 à 11:36
Toutes ces réponses sont très intéressantes,

en fait, toutes nos utilisations de Exceed sont graphiques, nous travaillons sur des maillages de géométrie, des calculs aux noeuds de différentes variables, ...
Le logiciel VisIt est un logiciel openSource nous permettant quelques libertés dans la gestion de nos bases de données. Plus qu'un logiciel de calcul, c'est un logiciel de post-traitement permettant la visualisation des données calculées (d'où peut-être les soucis graphiques).
Voilà pour notre utilisation d'Exceed.

J'ai un peu parlé aux personnes de l'informatique (nous avons les mains assez liées pour tout ce qui touche à l'informatique), ils ne sont pas bien "chauds" pour VNC, je creuserai tout seul la question (quand j'aurai un peu plus de temps).

Pour le reste, je crois avoir trouver un semblant de réponse. Visiblant par défaut (grâce au X11 forwarding), notre connection ssh crypte les "Xwindows". Par contre, le fait de rediriger la variable d'environnement ne sécurise plus les fenêtres d'où les performances meilleures.
(source : https://www.mail-archive.com/ssh@clinet.fi/msg02803.html

Je marque le topic "résolu" mais tout autre suggestion serait la bienvenue.
Merci encore "mamiemando".
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33643 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 avril 2025 7 845
1 juil. 2009 à 12:46
Plus qu'un logiciel de calcul, c'est un logiciel de post-traitement permettant la visualisation des données calculées (d'où peut-être les soucis graphiques).

En fait je pense que le problème ce situe plus au niveau de "l'architecture" qu'au niveau de la connexion. Ca me paraît moyennement stratégique d'avoir l'application cliente sur le serveur (tu en vis actuellement tous les inconvénients). Je pense que ton logiciel devrait être installé (au moins pour la visualisation des données) sur le poste client.

Je ne vais pas te mentir, la solution qui suit réclame un peu de boulot, donc à toi de voir si le jeu en vaut la chandelle, c'est juste une proposition.

Puisque ton logiciel est open source, il doit être possible de recompiler ce logiciel sous windows (si une version windows n'existe pas déjà) par exemple à l'aide de cygwin. Si tu t'aperçois rapidement que ça devient compliqué, une solution plus simple consiste à installer sous windows virtualbox et y encapsuler un linux, puis installer une version linux de ce logiciel dans ta machine virtuelle. (Évidemment le plus simple ce serait que le poste client soit directement sous linux !)

Ceci fait, il suffit que ton serveur de calcul propose des exports samba (importables sous windows et linux) ou nfs (c'est mieux, mais seul un client linux pourra l'importer) pour accéder directement aux fichiers résultats stockés sur le serveur. Dès lors tu pourras visualiser les résultats avec ton logiciel directement installé sur ton PC car ces fichiers seront directement accessibles dans ton arborescence de fichiers.

L'avantage, c'est que tu n'as plus besoin de faire circuler ton application graphique par le réseau, et que les calculs restent effectués par ton serveur (il faudra bien entendu lancer le calcul depuis le serveur). Autre intérêt, nfs est particulièrement trivial à mettre en place (samba c'est un peu plus technique). Concrètement, seuls les résultats des calculs seront transférés entre ton serveur de calcul et ton poste client.

Pour le reste, je crois avoir trouver un semblant de réponse. Visiblant par défaut (grâce au X11 forwarding), notre connection ssh crypte les "Xwindows".

Oui c'est ce que je te disais, ta connexion ssh importe les fenêtres, donc celles-ci sont chiffrées à l'entrée de la connexion ssh et déchiffrées à la sortie. Ce traitement ralentit fortement le temps de réactivité de ton application. L'intérêt de VNC est de proposer une authentification sécurisée mais une circulation des informations graphiques beaucoup plus efficace que ssh.

Par contre, le fait de rediriger la variable d'environnement ne sécurise plus les fenêtres d'où les performances meilleures.

Oui c'est normal. En redirigeant l'affichage avec la variable DISPLAY, les informations graphiques ne transitent pas dans ssh et ne sont donc ni chiffrées ni déchiffrées. C'est plus rapide, mais pas sécurisé. Ca doit correspondre plus ou moins aux performances que tu peux espérer avec VNC.

C'est la solution la plus simple dans la mesure où tu peux la faire sans faire quoi que ce soit au niveau du serveur. Par contre ce n'est pas forcément la plus agréable pour l'utilisateur car les performances sont assez mitigées.
0