IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Firebird Discussion :

Performance Firebird Super classic 2.5.9 sur Vm Windows 2016.


Sujet :

Administration Firebird

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Performance Firebird Super classic 2.5.9 sur Vm Windows 2016.
    Bonjour,

    Cela fait plus d'un mois que je suis confronté a des dégradations de performance de mon outils métier.

    Contexte : un outils métier qui utilise des bases Firebird, avec 80 utilisateurs possibles en simultanée, une moyenne de 50 aux quotidiens. La taille des bases varient entre 500 Mo et 2 Go, en fonction de l'archivage qui ait fait sur l'outil.
    Matériel : un VM w2016 server avec licences TSE dessus pour les utilisateurs. Ce serveur ne sert qu'à gérer l'outil métier, le logiciel est installé dessus, et le moteur de base de données Firebird en mode super classic également. Chaque Utilisateur qui se connect lance donc un instance de l'applicatif. Etant en mode super classic, je n'ai qu'une instance firebird qui tourne : fb_inet_server.exe

    Ma VM est la suivante : 80 Go de Ram Disque SSD et 24 processeurs.

    Malgré cela j'ai des pics de consommation CPU sur l'instance firebird, jusqu'à 60 % de consommation CPU et cela me fige le serveur et les délais de réponses, parfois jusqu'au blocage complet de la machine.
    J'étais auparavant en mode classic (installation par défaut de l'éditeur).
    J'ai tenté le mode SuperServer mais chute brutale de performance et logiciels a l'arrêt complet.

    Le mode SuperClassic a résolu pas mal de soucis de performance.

    Cependant, depuis quelques jours la consommation monte au delà de 50 % de CPU alors que cela ne s'était jamais produit.

    J'ai inspecté mon serveur de A à Z, enlever les services inutiles, potasser tous les How to sur les gains de performance mais rien n'y fait.

    Je me pose donc les questions suivantes :
    Est ce que cela vous est déjà arrivé ?

    Je me demande également comment pouvoir dissocier la gestions des licences sur un autre serveur et la base sur un deuxième pour éviter les processus superflus.

    Je suis limité par le logiciel de l'éditeur, et de leur coté, peu de réponses sur une aide potentielle.

    Enfin je me dis que peut être la solution serait de tenter cela sous un Linux, moteur + base et applicatif, avec un accès au répertoire partagé de mon applicatif ce qui permettrait de faire tourner le logiciel (sous delphi) sur un pc windows.


    Je ne sais pas si je suis très clair, j'ai essayé de détailler un max de choses mais bon.
    J'ai également touche au fichier firebird.conf pour tenter d'améliorer, mais mis à part le cpuaffinity dédié au mode SuperServer (que je n'ai pas modifié donc) je ne vois pas ou tappé.

    En vous remerciant pour votre lecture, et aide éventuelle.
    J'espère que mon sujet est au bon endroit.

    Merci d'avance a tout le monde qui me lira.
    J.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 017
    Points : 40 932
    Points
    40 932
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    je mettrai d'abord en question la santé des base de données :
    • tout d'abord en faisant des backups réguliers ce qui provoque un sweep "automatique" même à chaud
    • En parlant de sweep quel est l'intervalle et peut-être est-ce une donnée à vérifier
    • je verifierai ensuite le nombre de transactions en limbo

    cela ne répond pas vraiment à la question performance en particulier sur une VM mais je commencerai par là
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci pour les pistes.
    Je vais commencer par faire cela effectivement.
    Je ne maitrise pas totalement la notion de "sweep", et je viens de creuser sur les docs.

    Par contre qu'entendez vous par "je vérifierai ensuite le nombre de transactions en limbo" ?
    J'avoue que ce terme m'échappe.

    Merci en tout cas
    J.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 017
    Points : 40 932
    Points
    40 932
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par gotcha7373 Voir le message
    Par contre qu'entendez vous par "je vérifierai ensuite le nombre de transactions en limbo" ?
    Limbo, c'est les limbes, c'est-à dire des transactions qui n'ont pas été validées et qui restent donc "actives", pour vérifier j'interrogerai la table MON$TRANSACTIONS

    Plusieurs cause aux limbes dont (c'est du vécu) une surchauffe de processeur sur le serveur, mais aussi des utilisateurs peu soigneux (alt+ctrl+suppr quand c'est trop lent)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Re,

    Ok j'ai compris et si je peux me permettre que faire si j'ai des transactions qui sont actives et pas validées ?
    Comment je vois celles ci justement, juste en interrogeant la table ?

    Désolé de mon ignorance la dessus..

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 017
    Points : 40 932
    Points
    40 932
    Billets dans le blog
    62
    Par défaut
    que faire si j'ai des transactions qui sont actives et pas validées ?
    On peut bien sûr les arrêter mais, cela peut être sujet à erreurs. Logiquement un sweep fera le plus gror du boulot
    lisez cet article, en particulier le chapitre "Chain traversal and Garbage collection" tout à la fin

    Comment je vois celles ci justement, juste en interrogeant la table ?
    oui, vous avez la date et l'état (entre autres) https://ib-aid.com/download/docs/fir...-transacs.html
    en interrogeant avec un tri sur la date il est alors facile de voir lesquelles sont anciennes.

    Attention un sweep ne réduit pas la taille de la BDD, seul un restore le fait puisqu'il y a reconstruction de la bdd.
    Lors de mon problème de surchauffe de processeur je faisais cela tous les jours (cron, en période d'inactivité) (n.b. cela date, IB 5.4, INterbase remplacé depuis lors par firebird )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CD C:\
    CD "C:\Program Files (x86)\Firebird\Firebird_2_5\bin"
    C:
    gfix -user SYSDBA -password SG5336 "D:\Fichiers\Base.fdb" -shut -force 0
    gbak.exe -v -t -user SYSDBA -password masterkey "D:\Fichiers\Base.fdb" "D:\Fichiers\base.fbk"
    -- gfix -user SYSDBA -password masterkey "D:\Fichiers\Base.fdb" -sweep 
    gfix -user SYSDBA -password masterkey "D:\Fichiers\Base.fdb" -online full
    pas le top mais efficace la plupart du temps.
    Quand le planton était trop important, un restore dans une base tampon, puis en cas de feu vert écrasement de la base de production.
    l'avantage flagrant : la réduction de la taille de la BDD
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 716
    Points : 52 380
    Points
    52 380
    Billets dans le blog
    4
    Par défaut
    Au niveau de la VM il y a des choses très importantes à contrôler :
    1) pas de cœurs flottants
    2) pas de RAM en ballooning

    Sans cela les ressources sont en permanence volées au détriment du SGBDR qui doit recommencer ad vitam æternam de lancer ses processus.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Firebird, transactions et méthodes de reprises sur erreurs
    Par LorisB dans le forum Connexion aux bases de données
    Réponses: 9
    Dernier message: 17/06/2009, 18h11
  2. Est il possible d'installer Firebird 1.5 et 2.0 sur le même PC.
    Par mercure07 dans le forum Installation
    Réponses: 7
    Dernier message: 17/10/2008, 13h20
  3. Firebird Embedded sur un Windows XP Embedded : DLL no found
    Par narfight dans le forum Installation
    Réponses: 4
    Dernier message: 18/02/2008, 10h44
  4. Réponses: 4
    Dernier message: 07/06/2007, 16h33
  5. Réponses: 1
    Dernier message: 06/10/2005, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo