Sébastien Maccagnoni a écrit 574 commentaires

  • [^] # Re: jq

    Posté par  (site web personnel) . En réponse au message JSON how to get the data I want.. Évalué à 1.

    C'est pas du Python.

  • [^] # Re: Utilise "values"

    Posté par  (site web personnel) . En réponse au message JSON how to get the data I want.. Évalué à 1. Dernière modification le 02 septembre 2015 à 09:52.

    Ok, tu peux transformer en liste le retour de "values" :

    Ce qui donne :

    list(dictionnaire.values())[0]

    Ton script serait d'ailleurs un peu plus pythonnesque comme ça :

    #!/usr/bin/env python3
    
    import json
    import requests
    import sys
    
    def askwiki(word):
        return list(
            json.loads(requests.get(
                "https://fr.wikipedia.org/w/api.php?action=query&titles={}&prop=revisions&rvprop=content&format=json".format(word)
            ).text)['query']['pages'].values()
        )[0]
    
    try:
        word = sys.argv[1]
    except IndexError:
        print("Usage: {} <word>".format(sys.argv[0]))
        sys.exit(1)
    
    print(askwiki(word))
  • [^] # Re: Utilise "values"

    Posté par  (site web personnel) . En réponse au message JSON how to get the data I want.. Évalué à 1.

    Ah non, ça marche en Python2, pas en Python3, où values() retourne un objet de type dict_values et pas list.
    Bouge pas, j'reviens ;)

  • # Utilise "values"

    Posté par  (site web personnel) . En réponse au message JSON how to get the data I want.. Évalué à 1.

    Avec ".values()", tu extrais uniquement les valeurs du dictionnaire, sous forme d'une liste. Donc si tu as un dictionnaire qui contient un seul item, tu auras la valeur de l'item de la manière suivante :

    dictionnaire.values()[0]

    Ce qui donne :

    print(data['query']['pages'].values()[0])
  • [^] # Re: Performance base de données

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 1.

    Il me semble que PostgreSQL offre de meilleures performances.

  • [^] # Re: Performance base de données

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 1.

    Ça ne va pas apporter grand chose, le problème est au niveau des performances requises.
    Que la base soit pleine ou vide, 100 millions de requêtes par jour ça reste 100 millions de requêtes par jour.
    Ça va très vite re-gonfler pour re-poser problème.

  • [^] # Re: Lourd !

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 2.

    Enfin, j'ajoute qu'il faut choisir :

    • soit on veut une supervision très fine et très réactive sur tout plein de points, auquel cas on met une base de données puissante ;
    • soit on veut garder un MySQL sur une VM, auquel cas il faut réduire les besoins de la supervision.

    (et il faudrait que je me calme un peu, là, sur 11 réponses j'en ai écrit 6…)

  • [^] # Re: Performance base de données

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 2. Dernière modification le 22 août 2015 à 11:12.

    J'ajoute encore une remarque concernant la taille de la base de données :
    - avec une conservation de 7 jours et un tel nombre de données remontées, l'historique nécessitera environ 34 Go (bien sûr, une conservation de 30 jours demanderait presque 150 Go ;
    - les données de tendances, quant à elles, représenteront environ 334 Go sur un an ;
    - les événements, quant à eux, sont plus difficiles à quantifier. Prenons un scénario qui très très pessimiste de 1 événement par seconde ; cela représente alors environ 4 Go.

    Étant donnée la taille de ta supervision, on peut raisonnablement penser que ta base de données pèsera, une fois en prod depuis plus d'un an, environ 400 Go ; elle devra également être capable de gérer environ 2000 requêtes d'insertion par seconde.

    Une VM avec 16 Go de RAM et 300 Go de disque dur me semble insuffisante pour de telles perfs.
    D'où mon conseil de diminuer les demandes.

    Ou alors tu peux mettre un stockage attaché et exploité en "bas niveau" par la VM avec attachement PCI par exemple. Ou alors un SAN. Enfin voilà, un vrai truc performant, quoi.

    Je vais exprimer la chose autrement : tu as mis en place une infra qui impose au serveur MySQL d'encaisser plus de 100 millions de requêtes d'insertion par jour, ce uniquement pour les nouvelles données. En ajoutant les tendances, les événements et toutes les autres infos qui sont modifiées dans la base, à vue de nez je dirais que ça représente 150 ou 200 millions de requêtes par jour. C'est énorme, vraiment.

    (et faudrait vraiment que je donne moins de détails sur les forums, je suis en train de torpiller mon business model, là…)

  • [^] # Re: Performance base de données

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 1.

    Ce qui me choque c'est controller type='ide' normal?

    Je ne suis pas un méga-expert en VM, mais ça ne me semble pas choquant : si ça émule quelque chose, autant que ça émule quelque chose de simple…

  • [^] # Re: Performance base de données

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 3.

    Étant donné que ton MySQL tourne sur une VM

    Cela ne me semblait pas évident à premier abord, vu qu'il avait écrit « Mysql sur un autre serveur »  ; au contraire j'avais cru que la base était sur une machine physique, avec cette formulation :)
    Il est bien sûr préférable d'avoir la base de données sur un serveur physique !

  • [^] # Re: Lourd !

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 3.

    Oui mais non, là c'est une moyenne, sur l'ensemble des infos remontées.

    Est-il utile de remonter la taille totale de chacune des partitions toutes les 4 minutes ?
    Est-il utile de remonter l'uptime toutes les 4 minutes ?
    Est-il utile de remonter le hostname toutes les 4 minutes ?
    Pour toutes ces infos, la périodicité peut être montée à 1 heure, ce qui peut beaucoup faire augmenter la moyenne ;)

    Et l'espace libre sur le disque dur, par exemple, il n'est probablement pas nécessaire de le remonter toutes les minutes : toutes les 10 minutes ça peut être suffisant, voire toutes les demi-heures dans certains cas : là aussi on ferait augmenter la moyenne plutôt que la baisser.

    Bien sûr, certains indicateurs doivent être plus réactifs : le fait qu'un service web est en fonctionnement par exemple, toutes les minutes voire toutes les 30 secondes ça se justifie.

  • # Lourd !

    Posté par  (site web personnel) . En réponse au message [Zabbix]: problème de performance serveur. Évalué à 4.

    Salut,

    Ce qui me fait très très peur, c'est ça :

    Requiered server performance: 1228.98

    Cela veut dire que ta machine doit recevoir 1229 (j'arrondis) valeurs par seconde.
    Donc presque 74000 nouveaux enregistrements par minute, ou encore plus de 4,4 millions par heure.
    Pour 320402 éléments, cela veut dire que ta "fréquence" moyenne de remontée d'infos est de 4 minutes. C'est court pour une fréquence globale, étant donnée la taille du parc.

    Et là, on ne parle que de l'enregistrement des nouvelles valeurs. Il faut aussi compter avec les tendances (que le serveur doit constamment calculer et insérer toutes les heures pour les valeurs qui "deviennent" plus anciennes) et avec les triggers à calculer (vraisemblablement, pour environ 66% des remontées d'infos).

    Il faut réduire la fréquence des remontées d'infos (donc augmenter l'intervalle entre deux remontées) pour les choses où il n'est pas nécessaire d'être aussi "réactif". Si tu peux aussi réduire le nombre de triggers, ce serait pas mal.

    Mais si tu as vraiment besoin d'une aussi grande réactivité et de tous ces triggers, il faudra améliorer les perfs de ta plateforme de supervision. Pour cela, plusieurs possibilités :
    - la première aurait été de séparer la base de données et le serveur Zabbix, mais ça tu l'as déjà fait
    - passer à PostgreSQL
    - mettre la base de données en cluster
    - ajouter des proxies
    - utiliser des machines plus puissantes

    Dans tous les cas, pense à te faire accompagner par un prestataire qui maîtrise bien Zabbix, au moins pour jeter un œil à ton infra et donner des conseils pertinent pour ton cas particulier (et pas seulement des généralités).
    Menfin les premiers conseils ce sera ce que je t'ai donné ci-dessus : réduire la fréquence (et hop, une presta de consulting en ligne gratuite). Avoir ton infra sous les yeux, ça permettra par exemple de te conseiller sur ce qu'il est pertinent de réduire.

  • # mon avis

    Posté par  (site web personnel) . En réponse au message Xubuntu 15.04 : partitions pour bien démarrer. Évalué à 3.

    Salut,

    Partition primaire ou logique pour la racine, pour home ? Quelle(s) différence(s), concrètement ?

    Aucune différence. De plus, si c'est un nouvel ordinateur, tu dois être en UEFI et donc avec une table de partitions GPT ; dans ce cas, il n'y a plus ces notions.

    Concernant les tailles, sur un disque de 120 Go je dirais :
    - 20 Go pour /, en ext4
    - 100 Go pour /home, en ext4

    Quelle taille pour le SWAP ? Égale à la RAM ou le double ?

    Pour ma part, avec une machine de 4 Go de RAM ou plus, je mets 1 Go de swap. Car si ta swap est utilisée, cela veut dire que tu as trop de trucs ouverts : une utilisation normale d'une machine ne fait pas dépasser les 4 Go de RAM. De toute manière, si ton PC se met à utiliser la swap tu vas le sentir et ça va vite t'énerver, tu vas fermer des trucs avant que ça ait atteint 1 Go.

    Sauf bien sûr si tu veux utiliser l'hibernation (suspend-to-disk), qui a besoin de copier l'intégralité de la RAM dans la swap.

  • [^] # Re: client free

    Posté par  (site web personnel) . En réponse au journal Free Mobile: C'est quoi leur projet?. Évalué à 6.

    Si tu ne parles pas du forfait de base alors tu ne parles pas d'accès data "gratuit"…

  • [^] # Re: client free

    Posté par  (site web personnel) . En réponse au journal Free Mobile: C'est quoi leur projet?. Évalué à 2. Dernière modification le 23 juillet 2015 à 11:27.

    Justement, suite à ce journal je réfléchis à la question, je suis chez Free Mobile et plutôt déçu par la data (bien que ça s'améliore ces derniers temps).
    Alors j'ai fouillé les offres des concurrents, je n'en vois aucun qui inclut un peu de data (ou même des appels) à l'étranger dans le forfait "de base" à 20€…

  • # pip

    Posté par  (site web personnel) . En réponse au message Changer la version d'un package ou le bloquer?. Évalué à 3.

    Salut,

    Évite de casser le système lui-même : utilise pip quand tu veux installer des modules python non inclus dans la distribution (ou si elle propose une version inadéquate)…

    Encore mieux : crée un virtualenv pour ton logiciel…

  • [^] # Re: Boitier sécurisé ?

    Posté par  (site web personnel) . En réponse au message Nano-ordinateur "protégé". Évalué à 1.

    Très bonne idée : information fiable, surveillance automatique centralisée, ne nécessitant pas de matériel particulier…

  • # BBB

    Posté par  (site web personnel) . En réponse au message Nano-ordinateur "protégé". Évalué à 6.

    Salut,

    Le Beaglebone Black a une mémoire eMMC soudée.

  • # Plus court

    Posté par  (site web personnel) . En réponse au message retirer la premiere ligne, et l'ajouter à la fin d'un nouveau fichier. Évalué à 4.

    Salut,

    head -n1 source.txt >> destination.txt && sed -i '1d' source.txt

  • # subjectivité

    Posté par  (site web personnel) . En réponse au message caillou dans la mare linux. Évalué à 7.

    pour moi les programmeurs ne se sont jamais vraiment mis à la place de monsieur tout le monde

    Il est révolu le temps où les environnements de bureau étaient faits à titre bénévole "un peu dans son coin".
    Aujourd'hui, les "grands" environnements s'appuient sur le travail d'ergonomes notamment.

    je suis utilisateur windows […] je suis débutant

    Tu n'es pas débutant dans l'informatique. Tu as une expérience sous Windows. Donc tout est influencé par ce que tu connais déjà. C'est comme quand j'ai passé le permis moto : je faisais de la 125 depuis 2 ans, mais j'ai dû désapprendre les (mauvaises) habitudes que j'avais avant, pour savoir réellement conduire une moto…

    j'ai toujours le pavé numérique qui n'est pas activé par défaut

    Tu as quel type de PC ?
    Un grand portable avec pavé numérique intégré, peut-être ?

    Certaines distributions essaient d'identifier l'ordinateur et, si c'est un portable, n'activent pas le pavé numérique par défaut ; car généralement, le pavé numérique activé sur un portable c'est une calamité, vu que celui-ci est placé au milieu du clavier alphanumérique.
    …. sauf qu'avec les gros PC portables qui ont un pavé numérique, eh bien ça forcément pose souci…

    firefox avec son module flash player qui s'arrête a une version morte!

    Si Adobe a décidé d'abandonner le développement de Flash sous Linux, c'est « la faute de Linux » ? Ou la faute de Firefox peut-être ?

    Seul Adobe peut être responsable des décisions et actes d'Adobe.

    l'instaleur me dit que la signature du machin est invalide bon c'est quoi encore que cette connerie!

    C'est de la sécurité. Histoire de t'empêcher d'installer n'importe quoi.

    Tu sais, le genre de choses qui fait que sous Linux t'as pas besoin d'avoir une flopée d'anti-virus, pare-feu, nettoyeur, anti-machin, anti-truc…

    toujours ce problème de l'icône son qui disparait dés que l'ont tente de modifier la barre de tache

    Jamais entendu parler. Jamais eu ce problème.

    sans parler des problèmes liés à la lecture des DVD………

    Insérer le DVD, cliquer sur "lire avec le lecteur vidéo", et voilà.
    Où est le problème ?

    Ah oui, tu parles du fait qu'il faut installer libdvdcss, peut-être ? La bibliothèque qui permet de contourner les DRM pour pouvoir lire des DVD sous Linux. C'est « la faute de Linux », peut-être, si les majors arrivent à forcer les gouvernements à rendre illégal le contournement de DRM dans certains pays ?

  • [^] # Re: lire le cours ?

    Posté par  (site web personnel) . En réponse au message fonctions . Évalué à 1.

    En effet ce sont des trucs hyper basiques :)

    Pour l'instruction :

    if __name__ == '__main__':

    (attention aux caractères "_", il y en a un nombre bien précis, ce n'est pas pour rien)

    Ça dit que ce qui est ensuite n'est exécuté que quand on appelle directement ce fichier, pas quand on l'importe comme module au sein d'un autre programme.

  • # contact

    Posté par  (site web personnel) . En réponse au message je recherche un administrateur pour réinstaller un serveur. Évalué à 1.

    Salut,

    C'est parfaitement dans mes cordes, pile poil mon cœur de métier.

    N'hésite pas à m'appeler ou m'envoyer un e-mail…
    contact@smm-informatique.fr
    07 82 12 60 27
    http://www.smm-informatique.fr/

  • # problèmes

    Posté par  (site web personnel) . En réponse au message crontab. Évalué à 0.

    Salut,

    3 petites remarques :

    • tu as un problème de mise en forme de ton texte, tu n'as pas utilisé les balises adéquates pour protéger ton code
    • je ne comprends pas trop ce que tu attends de nous
    • ton mot de passe est vachement faiblard, c'est le genre de chose qui se fait casser en peu de temps (même quand tu ne le postes pas tel quel sur Internet)
  • [^] # Re: Paperwork !

    Posté par  (site web personnel) . En réponse au message Une solution pour scan et archivage de document pour fainéant. Évalué à 4.

    Parfaitement d'accord. Je l'utilise depuis plusieurs années avec beaucoup de bonheur !

  • # Facile !?!?

    Posté par  (site web personnel) . En réponse au message Installation de logiciels . Évalué à 4.

    sous windows , avec un .exe , c'est facile de retrouver le logiciel installé […]

    Facile, ah bon ?

    Déjà, pour devoir le "retrouver" c'est qu'on l'a "perdu" ou alors qu'on doit le chercher.

    Sous Linux, tu installes ton logiciel à partir des dépôts (sur Ubuntu, par l'intermédiaire de la Logithèque) et tu ne t'embêtes pas à savoir où il se met : l'exécutable s'installe dans /usr/bin et un lanceur se met à l'endroit qu'il faut pour que ton environnement de bureau puisse te permettre de le lancer.

    Ne pas avoir à chercher où est installé un logiciel, c'est plus facile que de "retrouver" un répertoire.