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

Adaptive Server Enterprise Sybase Discussion :

[ASE 15.0.2] Erreur création data cache (espace disque)


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut [ASE 15.0.2] Erreur création data cache (espace disque)
    Bonjour

    J'utilise Sybase Central pour créer un data cache dédié à ma base temporaire.
    Pouviez-vous m'expliquer pourquoi j'ai cette erreur (cf. fichiers png joins) ?
    Mon 'max_memory' est suffisant (2,5Go disponible cf fichier joint)

    De quel espace disque s'agit-il lors de la création d'un DC?

    Merci
    msomso
    Images attachées Images attachées   

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Bizarre.

    Je n'utilise pas Sybase Central, je sais pas vraiment d'où vient le message. Essaie peut-être de faire la même commande directement dans isql (ou similaire).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    -- exemple:
    sp_cacheconfig 'tempdb_cache', '10m'
    go
    sp_bindcache tempdb_cache, tempdb
    go
    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut résultat cde à partir de isql
    Bonjour Michael
    Ton avis sur l'erreur affichée avec la commande en ligne ?
    Je crois avoir déjà eu ce cas, j'ai eu ensuite les erreurs au redémarrage du serveur. ASE refuse de démarrer avec le fichier de config modifié. Il fallait que je reprenne le fichier .bak
    Comment faire proprement les choses ?
    Merci
    Images attachées Images attachées   

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Est-ce que la mémoire est disponible au niveau de l'OS?
    Suivant l'OS il faut aussi assigner une limite suffisamment grande pour la "shared memory" (p.ex. kernel.shmmax sous linux). C'est peut-être cela qui est retourné comme "manque d'espace" dans le message d'erreur.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut résultat cde à partir de isql
    Avec quelle commande vérifie-t-on la mémoire OS (SUN Solaris) ?

    merci
    msomso
    Images attachées Images attachées   

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    D'une part tu peux essayer "ulimit -a" pour le user qui execute dataserver (sybase ?).
    D'autre part (mais mes souvenirs sont assez flous...) les limites sont définies dans /etc/system (je crois!). Pour Solaris 10 il faut lire:

    http://infocenter.sybase.com/help/in...sun/X30291.htm

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Avec j'ai environ 5Go de mémoire disponible.
    Mon serveur :
    max_memory augmenté à 6Go et pourtant la création de DC genére toujours la même erreur.

    Que signifie le message dans le log:
    Configuration of the cache (tempdb_cache) failed since the defined cache configuration consumes more memory than is available for buffer caches.
    J'ai aussi celui là:
    00:00000:00053:2010/09/10 14:20:26.53 kernel Allocating a shared memory segment of size 2095104 by tes.
    00:00000:00053:2010/09/10 14:20:26.53 kernel os_create_region: can't allocate 2097152 bytes
    00:00000:00053:2010/09/10 14:20:26.53 kernel kbcreate: couldn't create server region 5.
    00:00000:00053:2010/09/10 14:20:26.53 kernel Retrying shared memory allocation with smaller size 1 047552 bytes.
    00:00000:00053:2010/09/10 14:20:26.53 kernel Allocating a shared memory segment of size 1047552 by tes.
    00:00000:00053:2010/09/10 14:20:26.53 kernel os_create_region: can't allocate 1048576 bytes
    00:00000:00053:2010/09/10 14:20:26.53 kernel kbcreate: couldn't create server region 5.
    00:00000:00053:2010/09/10 14:20:26.53 kernel Retrying shared memory allocation with smaller size 5 23776 bytes.
    Merci
    msomso

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Le problème vient probablement du nombre de segment shared memory déjà en existence. Par défaut, je crois que cela est limité à 6 (cf. set shmsys:shminfo_shmseg=x ).

    Y a t-il un spécialiste Solaris dans l'assistance???? :-)

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Pour diminuer la segmentation,
    j'ai essayé d'allouer le maximum de mémoire au démarrage
    (paramètre 'all max shared memory'=1).

    Et là, j'ai dù diminuer mon 'max memory' de 5Go à 2Go pour que le serveur démarre.

    Question:
    cela pourrait-être lié au fait que j'ai défini 2 engines (2CPU) au démarrage?
    Faut-il compter que chaque "engine" consomme les 'max memory' càd 2Go
    ?

    Au niveau OS, j'ai 5Go disponible.
    pourquoi ASE ne voulait pas démarrer avec 'max memory'=5Go, ni 3Go

    Merci
    msomso

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Je pense que l'OS limite la taille du segment shared memory à 2GO (c.f. la doc Sybase citée plus haut).

    Autre chose - est-ce que le dataserver est en 64 bit (je pense que oui, mais faut quand même vérifier) ?

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    bonjour

    cela pourrait-être lié au fait que j'ai défini 2 engines (2CPU) au démarrage?
    Faut-il compter que chaque "engine" consomme les 'max memory' càd 2Go ?
    c'est de la mémoire partagée donc les 2 gb sont utilisées par les 2 processus (engine).

    Regarde la limite dans /etc/system

    shmsys:shminfo_shmmax=<taille max du segment octets> (mais un reboot est nécessaire)
    regarde aussi le nb max de segments :
    shmsys:shminfo_shmseg=x

    tu peux utilisr la commande pour affichier la liste des segments et leur taille

    ou si ta version >= Solaris 10, il faut regader dans /etc/project
    project.max-shm-memory=(system,<taille max du segment octets>,deny).

    ou utiliser la commande prctl



    cf. http://infocenter.sybase.com/help/to...sun/X30291.htm
    Emmanuel T.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut réponses aux questions de Michael et Kagemaru
    Bonjour
    1. Oui, le serveur est en Solaris 10 et 64 bits
    (Sybase Central affiche Sun_svr4 64bit OS 5.8)

    2. Le fichier /etc/sysytem est vide à l'exception d'une ligne :
    rootdev:/pseudo/md@0:0,0,blk
    3. le fichier /etc/project ne contient que :
    system:0::::
    user.root:1::::
    noproject:2::::
    default:3::::
    group.staff:10::::
    4.ipcs -a
    affiche un segment de 2Go appartenant à sybase (cf. fichier joint)

    5. prctl lancée avec "$$" donne le resultat ci joint.
    Ni 'shminfo_shmmax' ni 'shminfo_shmseg' n'ont pas de valeur par defaut.

    Faut-il comprendre qu'à défaut de paramétrage dans les fichiers système, ASE reste limité à 1 segment de 2Go ?


    Merci
    msomso
    Fichiers attachés Fichiers attachés

  13. #13
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Je vois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    project.max-shm-memory
            privileged      1.95GB      -   deny                                 -
            system          16.0EB    max   deny                                 -
    dans res_prctl.txt. Je suspecte que le 1.95GB privileged devienne la limite effective - mais comme je l'ai dit plus haut, mes connaissances Solaris sont vraiment très limitées...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Par défaut, le max serait 25% de la mémoire physique, mais je n'ai pas réussi à trouver cela dans la doc en ligne.

    Il te faut créer un projet pour le compte utilisé pour démarrer l'instance Sybase.
    Exemple si ton compte est sybase :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    projadd -U sybase -K "project.max-shm-memory=(priv,5120MB,deny)"  user.sybase
    Emmanuel T.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut avec projadd
    Bonjour

    On a modifié le fichier /etc/projeect avec la commande projadd (cf. réponse de kagemaru)
    prctl $$ affiche maintenant
    project.max-shm-memory
    privileged 5.00GB - deny -
    Ensuite:
    - 'max memory' àugmenté 4 Go,
    - 'allocate max shared memory' vaut 1 pour éviter la segmentation de la mémoire

    Le serveur ASE ne veut pourtant pas allouer les 4Go demandés au démarrage
    Le contenu du fichier log du serveur au démarrage:
    00:00000:00000:2010/09/14 09:58:49.27 kernel os_create_region: can't allocate 4096000000 bytes
    00:00000:00000:2010/09/14 09:58:49.27 kernel kbcreate: couldn't create kernel region.
    00:00000:00000:2010/09/14 09:58:49.27 kernel kistartup: could not create shared memory
    Il faudrait peut être positionner le paramètre OS limitant le nombre de segments à plus d'un ?
    Si oui, quelle commande OS utiliser ?

    Merci
    msomso

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    bonjour

    C'est bizarre. Est-ce que ton instance est bien le seul process consommant de la mémoire partagée pour ce projet ? Les 5GB sont la limite du projet, donc si tu as d'autres programmes (autres instances ?), cela peut poser problème.

    j'ai environ 5Go de mémoire disponible.
    Pour sybase ou pour ton système ?

    Si ton instance ne peut démarrer, je présume que ne retourne rien ?

    merci
    Emmanuel T.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour
    Le serveur OS dispose de 8Go de mémoire physique.
    bash-3.00# /usr/sbin/prtconf | grep Memory
    Memory size: 8192 Megabytes
    Question 1.
    Est-ce que ton instance est bien le seul process consommant de la mémoire partagée pour ce projet ...
    Sur la même machine, nous avons installé un serveur d'application et aussi un serveur ASE backup.
    Aujourd'hui la commande sar -r 5 2 donne:
    # sar -r 5 2

    SunOS bicdev 5.10 Generic_118833-36 sun4u 09/14/2010

    14:15:04 freemem freeswap
    14:15:09 317365 37631791
    14:15:14 317995 37707056

    Average 317680 37669386
    # pagesize
    8192
    #
    Ce qui donne en effet 2,4Go de mémoire disponible.
    La page OS est de 8Ko, 'freemem' est donné en nombre de pages.

    Les process 'consommateurs' affichés par 'prstat -s size' sont :

    PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
    10904 sybase 2034M 1995M sleep 59 0 0:05:33 0.2% dataserver/13
    10905 sybase 2033M 1995M sleep 59 0 0:04:58 0.2% dataserver/15
    9031 xxxxx 1224M 1127M sleep 59 0 2:41:16 0.4% java/216
    7952 xxxxx 423M 291M sleep 59 0 0:54:27 0.1% java/72
    271 daemon 20M 3760K sleep 59 0 0:00:17 0.0% nfsmapid/3
    376 root 13M 1816K sleep 59 0 0:01:01 0.0% fmd/17
    552 root 13M 1936K sleep 59 0 0:03:07 0.0% nmbd/1
    10937 root 9712K 4320K sleep 59 0 0:00:00 0.0% smbd/1
    On dirait, comme je l'ai pensé hier, que chaque engine/dataserver se réserve les 2Go de 'max memory' lors du démarrage, non ?

    Votre avis ?

    Question 2
    Si ton instance ne peut démarrer, je présume que
    Code :

    ipcs -a

    ne retourne rien ?
    J'ai démarré ASE mais avec 'max memory' de 2Go au lieu de 4Go.
    Résultat ipcs dans le fichier joint.

    merci
    msomso
    P.S.
    Dans cette liste 'xxxx' cache le nom de notre application.
    Fichiers attachés Fichiers attachés

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour
    après avoir arrêté le 2eme CPU, le résultat de sar -r est le même.
    Cette action n'a pas libéré de mémoire.
    Mon hypothèse ne se confirme donc pas,
    comment expliquer le peu de mémoire disponible sur le 8Go total ?

    Mais aussi pourquoi ASE refuse de démarrer avec 2Go de plus, alors qu'on a 2,4Go disponible et qu'on a affecté la limite de 5Go au projet ?
    msomso

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    On dirait, comme je l'ai pensé hier, que chaque engine/dataserver se réserve les 2Go de 'max memory' lors du démarrage, non ?
    Non, tu vois 2 processus mais le segment est le même. ipcs affiche une ligne par segment.

    est-ce que tu peux exécuter la commande

    depuis le répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SYBASE/$SYBASE_ASE/bin
    ?

    Merci
    Emmanuel T.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour

    bash-3.00$ cd ../bin
    bash-3.00$ dataserver -v
    Adaptive Server Enterprise/15.0.2/EBF 14328/P/Sun_svr4/OS 5.8/ase1502/2486/64-bit/FBO/Thu May 24 12:18:26 2007

    Confidential property of Sybase, Inc.
    Copyright 1987, 2007
    Sybase, Inc. All rights reserved.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Erreur ( création d'un espace membre )
    Par thomas767 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 27/04/2014, 21h12
  2. Taille du default data cache ASE 15.0.2
    Par Laurielee dans le forum Adaptive Server Enterprise
    Réponses: 30
    Dernier message: 20/10/2009, 13h44
  3. [SOAP][Web Service] erreur création d'une référence Web
    Par Maximil ian dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 20/06/2005, 13h29
  4. [Firebird - D7] Erreur - Création dynamique d'une base
    Par EGI dans le forum Bases de données
    Réponses: 5
    Dernier message: 29/03/2005, 14h26
  5. FOXPRO 2.6 : erreur créations du /des fichiers CAB
    Par breihtiti dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 16/11/2002, 11h28

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