-
Compteur de contenus
26 003 -
Inscription
-
Dernière visite
-
Jours gagnés
1 284
Tout ce qui a été posté par Lazer
-
J'ajoute que Fibaro utilise lui-même massivement l'API http pour ses propres besoins.... donc entre ça et mes propres scripts LUA, en fin de compte il n'est pas étonnant d'avoir autant de TIME-WAIT, qui signifie que les sockets sont bien fermées.
-
Non les ESTABLISHED sont bien fermées systématiquement. J'ai plus de ESTABLISHED dues àmes connexions SSH qu'aux connexions Web, c'est dire ! Au moins les sockets sont bien fermées àchaque fois qu'on sort de la boucle LUA.
-
root@fghc2:~# ulimit -Ha core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 16382 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) unlimited virtual memory (kbytes, -v) unlimited file locks (-x) unlimited Apparemment, les TIME_WAIT ne sont pas un souci, on reste sur des valeurs assez faibles : http://vincent.bernat.im/fr/blog/2014-tcp-time-wait-state-linux.html Il semble que les TIME_WAIT sont supprimés au bout de 1 à4 minutes, donc vu que j'ai plusieurs VD qui font plusieurs Net.FHTTP(), ce n'est pas aberrant.
-
Limites systèmes : root@fghc2:~# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 16382 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) unlimited virtual memory (kbytes, -v) unlimited file locks (-x) unlimited Je viens de comparer avec une installation par défaut de Debian 6, c'est exactement pareil, donc FIbaro n'a rien modifié. Effectivement, je pense que tu as mis le doit sur un point intéressant...; open files = 1024 et regarde ça : root@fghc2:~# netstat -a | grep TIME_WAIT | wc -l 1101 Faut que j’identifie les sockets pour voir par quels process ils sont ouverts....
-
je t'avoue que j'ai jamais pensé àsurveiller les sockets. J'ai étudié l'utilisation mémoire des process, ainsi que le nombre de thread (plusieurs centaines, en augmentation continue pour un seul process, làaussi il y a un problème) Ca serait intéressant que j'étudie également les sockets.... Mais la pile TCP/IP est censée les fermer comme tu le fais remarquer.
-
j'ai eu des plantages avec plus de 50 % de RAM libre. Et les plantages peuvent arriver sur tout : VD, Scène, voire process principal (HC Serveur), et pourtant tout cela est dans des process différents au niveau OS LInux. Les crash que j'ai observé sont des core dump, très aléatoire (entre 3h après le reboot de la box, et plusieurs mois après le reboot) donc ce n'est pas une conséquence d'une grande utilisation de la RAM, sinon le process ne planterait pas et la RAM utilisée augmenterait, de même que le swap (paging space). A noter de plus que l'utilisation RAM d'un process de type VD, Scène, ou Plugin, augmente rapidemment pour atteindre son régime de croisière, puis se stabilise autour d'une valeur nominale (modérée), qui varie légèrement en fonction du déclenchement du garbage collector. Le Garbage Collector est très bien décrit dans les docs LUA, je ne me souviens plus bien de l’intervalle, mais tu peux retrouver l'info facilement, et même le déclencher manuellement si tu veux. -- Appeler manuellement le garbage collector collectgarbage("collect") Tu peux aussi surveiller la consommation mémoire : -- getCurrentMemoryUsed() return total current memory in use by lua interpreter in kilobytes -- collectgarbage("count") permet de vérifier la "gestion de la mémoire". -- Attention Le Mainloop et les boutons sont des Sandbox (bacs à sable), le collectgarbage("count") retourne uniquement la mémoire utilisée par le script dans le sandbox. getCurrentMemoryUsed = (function() return collectgarbage("count"); end) Si tu veux aller plus loin, root ta box, surveille les process et la RAM globale du système, et tu verras que tu ne peux rien faire. C'est codé avec les pieds, on est obligé de faire avec. J'ai contourné le problème avec un watchdog (dans ma signature) qui relance les VD/Scènes quand ils plantent à tord (core dump) ou à raison (erreur de syntaxe LUA).
-
Sujet déplacé, merci de ne pas poster dans la section pour les nuls, réservé aux tutos. Essaye le format PNG, je ne pense pas que le JPEG soit accepté.
-
Concernant la stabilité, j'ai des VD qui tournent en boucle infinie, et qui ne plantent pas, que je libère la connexion HTTP ou pas (j'ai testé dans les 2 cas). Donc je ne pense pas que cela ait un impact sur la stabilité de la box. Comme je l'avais déjà précisé ailleurs, notre code LUA est exécuté par l'interpréteur LUA, qui est une librairie standard, non développée par Fibaro. Et jusqu'à preuve du contraire, le LUA est un langage robuste, avec un garbage collecteur efficace, qui rattrape nos erreurs de programmation. Les instabilités de la HC2 ne sont pas dues à nos quelques centaines de lignes en LUA, mais à ce qu'à développé FIbaro. Certainement des fuites mémoires non maitrisées.... auxquelles nous ne pouvons rien faire.
-
PS : tu ne peux pas poster de nouveau sujet dans la section pour les Nuls, surement pour ça que tu n'as pas eu de réponse.... d'ailleurs je viens d'y trouver ton sujet, que je vais supprimer car tu as créé un nouveau topic. Idéalement, il faut fermer la connexion Net.FHTTP, mais c'est vrai qu'on ne le fait pas systématiquement.... car le Garbage Collector du LUA fait le ménage à intervalle régulier. Si tu veux forcer la libération de mémoire, tu peux affecter nil à la variable : local HC2 = Net.FHttp("127.0.0.1", 11111) -- blah blah blah HC2 = nil
-
méchant les pompiers te diront qu'ils préfèrent pourtant le bois au métal.... car la réaction du bois en cas d'incendie est plus prévisible que les structures métalliques, qui s'effondrent sans prévenir.
-
Ouaip c'est collé ! Mais ça devrait passer en refroidissement passif, pour l'instant avec le switch de 10W, ça reste froid. Sinon l'évacuation se fera par le trou vers le placard d'àcôté, ou àgauche le long des câbles réseaux.
-
OK bon j'en parle àmon boss, sur un malentendu ça peut passer
-
quoi, pas de mirabelle ? Bon inutile que je vienne alors Comme il va faire froid dans l'Est, peut être que je ferais mieux de rester chez moi et rendre visite àmon ami Fredo Il parait que le serveur DHCP fonctionne maintenant
-
Mon coffret réseau 10" était trop étroit.... aucun switch de qualité (marque réputée, manageable, et avec plus de 16 ports) ne rentrait dedans. Et mon Netgear 8 ports ne me convenait plus. Problème, je suis limité en espace, et le seul emplacement à ma disposition est le bas d'un placard, qui nous sert de porte-manteaux. Aucun coffret 19 pouces ne me convenait, à cause des profondeurs, c'est soit 30cm, soit 45cm.... mais jamais entre les deux. J'ai donc acheté 4 profilés rack en acier 2 mm de 6U sur eBay pour une poignée d'euros. Une cornière acier pré-percée chez Leroy Merlin, ainsi que quelques vis et écrous papillons pour une autre poignée d'euros. Et du bois de récupération (des chutes de liteaux de mon abris de jardin) Fabrication de la structure sur mesure, en me servant du switch Cisco et du panneau de brassage Legrand comme référence pour la largeur entre les montants : Ça rentre parfaitement dans le placard : Les écrous papillons servent à ajuster la profondeur des rails, en fonction de la profondeur du switch, afin de maximiser le peu d'espace disponible. J'ai fait sauter le fond du placard afin de mettre le sol à nu, ce qui laisse la place pour l'arrivée des câbles réseau. Pour fermer cela proprement, je pensais le faire en panneau MDF peint. Une fois dans mon Leroy Merlin local, je tombe sur un stock de planches en chêne de 20mm en promo. C'est parfait, ça sera plus propre, et puis un coffret réseau en chêne massif, c'est juste la classe Voici l'ensemble monté, avec des vitres en plexiglas, et de la quincaillerie de la marque Hettich (j'adore leurs produits) : Commentaire de Madame à ce moment là : il est bizarre ton nouveau meuble à chaussure (euh, comment dire... tu en as déjà un qui est aussi large et qui fait 2m de haut... ) Bon clairement, les portes sont ce qui m'a pris le plus de temps à faire dans tout le projet, je me suis galéré avec des tourillons pour l'assemblage, une belle rainure pour la fixation de la vitre, le positionnement des charnières, et le système de fermeture. En haut à gauche, on voir quelques câbles réseaux qui remontent, ils seront masqués ultérieurement avec un double fond en HDF. Il y a largement la place pour monter une 15zaine de câbles réseau directement vers l'étage. Vue de l'intérieur : Reste à faire : - une réglette de prise électrique (certaines seront sur un onduleur à venir) - terminer le câblage réseau avec des câbles de qualité et aux bonnes longueurs. - continuer à passer des câbles dans toute la maison, j'ai maintenant de la marge pour le brassage. - installer le routeur et le point d'accès Wi-Fi Ubiquiti Comme le coffret est en bois, je pourrais y installer des équipements hertziens, tels que Wi-Fi, Z-Wave, etc.... mais je vais m'abstenir car : situé au ras du sol ce n'est pas l'idéal pour diffuser dans la maison, et ça risque de chauffer assez vite (HC2 + Freebox, ça consomme beaucoup, si je peux éviter d'installer des ventilateurs d'extraction, c'est mieux). Et puis comme j'ai la place pour tout cela, voici justement la vue du placard de droite, qui contient le serveur HP (d'ailleurs faut que je mette le G8 à la place du G7), la Freebox, la HC2, et les tableaux électriques :
-
c'est pas bon, ça sent les fichiers corrompus. A mon avis t'es bon pour faire un recovery.
-
- oui c'est ce que j'utilise chez moi, le nom du site fonctionne parfaitement à la place de l'IP - je pense que tu vas devoir modifier les scripts pour changer l'URL.... galère à faire Est-ce que tu ne peux pas créer une URL du style domotique.monsite.com (le www étant inutile) Cool Je ne connais pas du tout les NAS WD..... mais vu l'erreur, j'ai l'impression qu'il n'y a pas MySQL sur le NAS. Faudrait que tu cherches comment activer cette fonction sur ton NAS.
- 1 285 réponses
-
- tuto multimã©dia
- graphiques
-
(et 2 en plus)
Étiqueté avec :
-
ah cool, bravo
- 329 réponses
-
Je pense que tu n'as pas la dernière version du VD..... Ta vieille version doit avoir les commentaires dans la main loop, ce qui fait trop de caractères et l'empêche de démarrer.... Comme expliqué dans les dernières pages. J'ai partagé une version directement utilisable.
- 329 réponses
-
- 1
-
-
Essaye de supprimer toutes les variables globales de ce VD, puis réenregistre le, ça va le forcer àrefaire une authentification. Par contre si tu n'as rien dans la fenêtre de debug de la main loop, y'a un autre problème.... ?!?
- 329 réponses
-
Normalement ça ressemble àquelque chose comme ça : mysql -u root --password -D nom_de_la_base < nom_du_fichier.sql 38 Mo ça devrait passer sans problème normalement. Moi j'avais buté sur des fichiers de plusieurs centaines de Mo.
- 1 285 réponses
-
- tuto multimã©dia
- graphiques
-
(et 2 en plus)
Étiqueté avec :
-
Jojo Dieu !!!
-
dans une des dernières pages
- 329 réponses
-
hum, c'est bien possible ça.... bon je courre me cacher (et je mettrai àjour la première page comme si de rien n'était, mais pas tout de suite....)
-
@jojo j'attends encore un peu.... je suis toujours en v4.056 stable et d'ici la fin du mois, je devrais approcher 90/100 % de RAM réellement utilisée... ça sera intéressant de constater la réaction (swap dans le paging space, ou crash) EDIT : ça swap déjà un peu (18 Mo) : root@fghc2:~# free -m total used free shared buffers cached Mem: 993 951 41 0 63 240 -/+ buffers/cache: 647 346 Swap: 243 18 225
-
hum, faudrait que je fasse le point et que je me replonge làdedans, je n'y ai pas touché depuis plusieurs mois. En tout cas le VD fonctionne sans broncher sur mon HC2.