Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Audit openERP 7.0: Mise en place &Optimisation de Performances

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
1
RAPPORT -1- : Documentation OpenERP
7.0
2015
SUJET : AUDIT & OPTIMISATION OPENERP (ODOO 7)
STAGIAIRE : KOUBAA FIRAS - II...
2
Plan
1. OpenERP : Diagramme Swot………………………………………………………………………………………………..3
2. OpenERP : besoin en ressources (Hardware)…………...
3
A-OpenERP : Diagramme SWOT
(Strenghts, Weaknesses, Opportunities, Threats) :
Forces Faiblesses
 Bon framework de dévelo...
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Installation open erp
Installation open erp
Chargement dans…3
×

Consultez-les par la suite

1 sur 50 Publicité

Audit openERP 7.0: Mise en place &Optimisation de Performances

1. OpenERP : Diagramme Swot………………………………………………………………………………………………..3
2. OpenERP : besoin en ressources (Hardware)………………………………………………………………………..6
3. Installation Windows…………………………………………………………………………………………………………..6
4. Installation Windows : “ All-in-one”…………………………………..………………………………………………..7
5. Installation Windows: Installation indépendante………………………………………………………………..10
6. Installation Linux……………….………………………………………………………………………………………………..20
7. Vue Générale : Comparatif implémentation sur Windows vs Linux..…………….……………………..26
8. Audit : Constatation plateforme OpenERP Sifast………………….……………………………….…………….28
9. Audit : Techniques d’optimisation & Comparatif Windows vs Linux…………………………………….29


9.1. Optimisation serveur OpenERP……….………………………………………………………….………..30
9.2. Mesure & Analyse de performances ………………………………………….…………………………40
9.3. Optimisation serveur PosetgreSQL……………………………………………………………..…………46
9.4. Recommandations & Conclusions…..……………………………………………………………….……48

1. OpenERP : Diagramme Swot………………………………………………………………………………………………..3
2. OpenERP : besoin en ressources (Hardware)………………………………………………………………………..6
3. Installation Windows…………………………………………………………………………………………………………..6
4. Installation Windows : “ All-in-one”…………………………………..………………………………………………..7
5. Installation Windows: Installation indépendante………………………………………………………………..10
6. Installation Linux……………….………………………………………………………………………………………………..20
7. Vue Générale : Comparatif implémentation sur Windows vs Linux..…………….……………………..26
8. Audit : Constatation plateforme OpenERP Sifast………………….……………………………….…………….28
9. Audit : Techniques d’optimisation & Comparatif Windows vs Linux…………………………………….29


9.1. Optimisation serveur OpenERP……….………………………………………………………….………..30
9.2. Mesure & Analyse de performances ………………………………………….…………………………40
9.3. Optimisation serveur PosetgreSQL……………………………………………………………..…………46
9.4. Recommandations & Conclusions…..……………………………………………………………….……48

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Les utilisateurs ont également aimé (20)

Publicité

Similaire à Audit openERP 7.0: Mise en place &Optimisation de Performances (20)

Plus récents (20)

Publicité

Audit openERP 7.0: Mise en place &Optimisation de Performances

  1. 1. 1 RAPPORT -1- : Documentation OpenERP 7.0 2015 SUJET : AUDIT & OPTIMISATION OPENERP (ODOO 7) STAGIAIRE : KOUBAA FIRAS - IIT ENCADREURS : M.AHMED KOLSI & M.MOHAMED KHARRAT
  2. 2. 2 Plan 1. OpenERP : Diagramme Swot………………………………………………………………………………………………..3 2. OpenERP : besoin en ressources (Hardware)………………………………………………………………………..6 3. Installation Windows…………………………………………………………………………………………………………..6 4. Installation Windows : “ All-in-one”…………………………………..………………………………………………..7 5. Installation Windows: Installation indépendante………………………………………………………………..10 6. Installation Linux……………….………………………………………………………………………………………………..20 7. Vue Générale : Comparatif implémentation sur Windows vs Linux..…………….……………………..26 8. Audit : Constatation plateforme OpenERP Sifast………………….……………………………….…………….28 9. Audit : Techniques d’optimisation & Comparatif Windows vs Linux…………………………………….29 9.1. Optimisation serveur OpenERP……….………………………………………………………….………..30 9.2. Mesure & Analyse de performances ………………………………………….…………………………40 9.3. Optimisation serveur PosetgreSQL……………………………………………………………..…………46 9.4. Recommandations & Conclusions…..……………………………………………………………….……48
  3. 3. 3 A-OpenERP : Diagramme SWOT (Strenghts, Weaknesses, Opportunities, Threats) : Forces Faiblesses  Bon framework de développement : le framework d'OpenERP intègre un ORM, une gestion des droits d'accès, un moteur de workflow et un moteur de rapports  Disponibilité d'une interface Web complète, rapide, jolie et facile à utiliser qui fonctionne avec Chrome, Firefox et Safari (le client Gtk historique a été abandonné avec OpenERP 7.0).  Choix du langage Python : un langage orienté objet conçu pour être facile pour le développeur.  Légèreté et bidouillabilité : OpenERP n'est pas une usine à gaz, c'est un logiciel plutôt léger et assez facile à appréhender pour les développeurs. Avec OpenERP, si vous avez des connaissances techniques, vous arriverez relativement rapidement à un stade où vous n'aurez plus l'impression que l'ERP est une énorme boite noire mais où vous vous sentirez le maître à bord. En outre, les requirements hardware pour faire tourner un serveur OpenERP sont modestes.  La faiblesse fonctionnelle des modules officiels. OpenERP possède le minimum dans chaque domaine.s  Un manque de maturité, qui se ressent sur le temps passé à corriger des bugs, pour certains très basiques  La priorité n'est pas assez mise par l'éditeur sur l'amélioration du fonctionnel et la correction des "bugs fonctionnels", par rapport à d'autres fonctionnalités moins importantes comme par exemple l'ajout d'une messagerie instantanée dans OpenERP.  L'éditeur fait parfois preuve d'un grand amateurisme sur certaines problématiques fonctionnelles, comme l'a illustré le fiasco de la gestion des contacts dans OpenERP 7.0 suite à un changement du modèle de données. D'ailleurs, si vous envisagez d'utiliser OpenERP 7.0, il est important de prendre le temps de lire le bug report 1160365, qui liste les principaux problèmes constatés dans la
  4. 4. 4  Ergonomie et facilité d'utilisation : l'éditeur, sous l'impulsion de son fondateur Fabien Pinkaers, est particulièrement porté sur les problématiques de "usability" et les progrès sont visibles à chaque nouvelle version.  Modularité : OpenERP est très modulaire. Le code fonctionnel est réparti dans de très nombreux modules (comptabilité, gestion de stock, ventes, achats, CRM, gestion de production, gestion de projet, notes de frais, gestion des congés, etc...) et il est possible de n'installer que les modules dont on a besoin. Cette approche modulaire couplée à la notion d'héritage permet de modifier le comportement natif de l'ERP et de l'enrichir sans modifier le code des modules officiels : on peut enrichir les propriétés des objets natifs, modifier les vues natives et changer le comportement natif des fonctions dans des modules spécifiques sans agir sur les modules officiels.  Une communauté dynamique, sympathique et qui code énormément. La communauté OpenERP ne se contente pas de faire des bugs report et de demander des features à l'éditeur, comme on le voit parfois sur certains projets OpenSource ; elle développe de nombreux modules communautaires et propose de nombreuses améliorations sous forme de merge proposal à l'éditeur (qui ne prend pas toujours assez de temps pour les traiter !). La communauté OpenERP est très probablement la plus grosse communauté parmi les ERPs OpenSource. Or la communauté a atteint un niveau de contribution et d'expertise sur le code lui permettant de continuer le développement du logiciel seule en cas de faillite de l'éditeur, ce qui est une assurance de pérennité.  L'existence de l'OpenERP Community Association qui coordonne les développements de la communauté et lui permet de parler d'une seule voix face à l'éditeur.  Une marque (OpenERP) et une image qui s'est beaucoup professionnalisée, même si l'éditeur ne publie pas beaucoup de success stories (la raison invoquée étant la gestion des contacts dans OpenERP 7.0 et discute des solutions possibles.  Manque de disponibilité de l'éditeur pour approuver (ou refuser) les « merge proposals » communautaires sur les branches officielles de développement, alors même que l'éditeur se réserve le monopole des commits sur ces branches.  Manque de disponibilité d'intégrateurs expérimentés qui ont un bon niveau technique et fonctionnel.  L'éditeur ne publie pas de scripts de migration pour les modules officiels ; il le fait payer sous forme de service.
  5. 5. 5 difficulté d'obtenir l'autorisation de l'entreprise utilisatrice).  Une seule version d'OpenERP est disponible, entièrement libre et gratuite. Il n'y a pas une version "Entreprise" payante et une version "Communautaire" gratuite avec des fonctionnalités en moins, comme Pentaho ou JasperSoft par exemple.  la licence AGPL qui contamine les modules ; les modules distribués sont forcément AGPL. Il n'y a donc pas de modules payants sur OpenERP, contrairement à PrestaShop ou Magento par exemple. Opportunités Menaces  Devenir le leader des ERPs OpenSource.  Développement de scripts de migration communautaires avec le projet OpenUpgrade.  Certains bons contributeurs de la communauté OpenERP sont partis chez Tryton (un fork d'OpenERP) en 2010- 2011, mais cette hémorragie semble stoppée.  Mauvaise gestion des copyrights par l'éditeur sur les modules officiels qui pourrait amener des contributeurs de la communauté à contester la validité de la licence
  6. 6. 6 B-Hardware : C- OpenERP installation sur Windows : Configuration requise L'installation du serveur fonctionne sur:  Windows 2000  Windows XP  Windows Vista  Windows 7, 8  Windows Server 2000  Windows Server 2003  Windows Server 2008 Avec des disques formatés en NTFS (et non une partition FAT ou FAT32). Note : OpenERP serveur ne fonctionne pas sur Windows 98 ou ME; pour des raisons évidentes - ceux-ci ne peuvent pas être formatés en NTFS.
  7. 7. 7 1- All-In-One Installation: Ceci est la façon la plus simple et la plus rapide à installer OpenERP. Il installe tous les composants (OpenERP Server ,OpenERP Client et la base de données PostgreSQL) préconfigurés sur un ordinateur. Cette installation est recommandée si vous ne disposez pas de toutes les personnalisations majeurs. 2- Etapes d’installations en local : (All in one) PostgresSQL OpenERP Server OpenERP Client
  8. 8. 8 Ensuite, il est préférable d’avoir installé Xampp pour Windows Et démarrer les services : MySql Tomcat Apache
  9. 9. 9
  10. 10. 10 2- Installation indépendante: Si vous choisissez ce mode d'installation, tous les composants requis pour exécuter OpenERP devront être téléchargé et installé séparément. Vous devrez opter pour une installation indépendante si vous prévoyez d'installer les composants sur des machines distinctes. Ce mode est aussi pratique si vous travaillez déjà avec ou prévoyez d'utiliser une autre version de PostgreSQL que celui fourni avec le Tout- En-Un installateur. 2-1- Installation et configuration du serveur PostgreSQL :  Installation serveur PostgreSQL Vous pouvez télécharger le programme d'installation de Windows à partir de : http://www.postgresql.org/download/windows/ Selon vos besoins, choisissez le One Click d'installation ou de la pgInstaller et lancer l'exécutable que vous venez de télécharger.  Installation d'un utilisateur PostgreSQL Lorsque les installations de logiciels nécessaires sont terminées, vous devez créer un utilisateur PostgreSQL. OpenERP utilisera cet utilisateur pour se connecter à PostgreSQL. Ajouter un utilisateur ?  Lancer une console Windows (exécuter le cmd dans la commande Rechercher les programmes et fichierszone de texte de l' Démarrer menu).  Changez le répertoire à l' PostgreSQL bin répertoire (par exemple C: Program Files PostgreSQL 9.0 bin ) ou ajouter ce répertoire à votre PATH variable d'environnement. Le super-utilisateur par défaut pour PostgreSQL est appelé postgres . Le mot de passe a été choisi lors de l'installation PostgreSQL.  Dans votre console Windows, tapez: PostgreSQL 1- installer serveur PostgreSQL 2-Installer un utilisateur postgres OpenERP Serveur 1- Telecharger et installer 2- Configurer Serveur OpenERP Client 1- Telecharger et installer 2- Executer Client Web
  11. 11. 11 C: Program Files PostgreSQL 9.0 bin> createuser.exe --createdb --username postgr es --no-CREATEROLE --pwprompt openpg Entrez le mot de passe pour le nouveau rôle: openpgpwd Entrez à nouveau: openpgpwd Est le nouveau rôle comme un super-utilisateur? (Y / n) y Mot de passe: XXXXXXXXXX * La ligne 1 est la commande elle-même * La ligne 2 vous demande le mot de passe du nouvel utilisateur * La ligne 3 vous demande de confirmer le mot de passe du nouvel utilisateur * La ligne 4 est nouveau rôle super ou pas? * La ligne 5 vous demande le mot de passe * * postgres de l'utilisateur explications Options:  --createdb : le nouvel utilisateur sera en mesure de créer de nouvelles bases  --username postgres : createuser utiliseront le postgres utilisateur (super-utilisateur)  --no-CREATEROLE : le nouvel utilisateur ne sera pas en mesure de créer de nouveaux utilisateurs  --pwprompt : createuser vous demandera le mot de passe du nouvel utilisateur  openpg : le nom du nouvel utilisateur. Alternativement, vous pouvez spécifier un autre nom d'utilisateur.  openpgpwd : mot de passe du nouvel utilisateur. Alternativement, vous pouvez spécifier un mot de passe différent. Note : Mot de passe Dans OpenERP v6, openpg et openpgpwd sont le nom d'utilisateur et mot de passe par défaut utilisé lors de l'installation du serveur OpenERP. Si vous envisagez de changer ces valeurs par défaut pour le serveur, ou avez déjà installé le serveur avec des valeurs différentes, vous devez utiliser les valeurs de configuration de l'utilisateur lorsque vous créez un utilisateur de PostgreSQL pour OpenERP. Maintenant utiliser pgAdmin III pour créer la base de données "openerpdemo" avec le propriétaire "openpg": CREATE DATABASE openerpdemo avec le propriétaire = openpg ENCODING = 'UTF8'; COMMENT ON DATABASE openerpdemo EST 'OpenERP Démo DB';
  12. 12. 12 Si vous avez installé le serveur OpenERP, vous pouvez commencer maintenant. Si nécessaire, vous pouvez remplacer la configuration du serveur en démarrant le serveur à une console Windows et spécifiant des options de ligne de commande. Pour en savoir plus, reportez-vous à la sectionConfiguration personnalisée . Pour changer le mot de passe d'un utilisateur dans une version Windows, exécutez la commande suivante: net user <accountname> <newpassword> par exemple utilisateur postgres postgres net Si il est un compte de domaine, il suffit d'ajouter "/ DOMAIN» à la fin. Si vous souhaitez supprimer, il suffit d'exécuter: net user <accountname> / supprimer Case-Insensitive Rechercher Issue Pour une installation qui a besoin du soutien de caractères UTF8 complet, pensez à utiliser postgres> = 8.2.x. L'utilisation de versions avant cela, la recherche OpenERP ne reviendra pas les résultats escomptés pour la casse recherches, qui sont utilisés pour la recherche des partenaires, des produits, etc. Exemple: SELECT 'x' FROM ma_table WHERE «pari» ilike «pari» --matches seulement dans 8.2.x 2-2- Installation et configuration du serveur OpenERP :  Le téléchargement du serveur OpenERP Le OpenERP Server peut être téléchargé à partir de la page de téléchargement de site OpenERP . Sous automatique sous Windows Installer , choisissez All-In-One pour télécharger OpenERP. Installation du serveur OpenERP Exécutez le programme d'installation vous venez de télécharger. Il comporte les étapes suivantes: a. Choisir la langue d'installation La valeur par défaut est l'anglais . L'autre option est français . b. Message de bienvenue Suivez attentivement les recommandations données dans cette étape. c. Accord de licence
  13. 13. 13 Il est important que vous acceptez la licence publique générale GNU pour poursuivre l'installation. d. Sélectionner un dossier pour l'installation Par défaut, OpenERP Server est installé dans C: Program Files OpenERP 7.0 Server . Pour installer dans un dossier différent, recherchez un emplacement différent (de dossier) à cette étape. e. Configurer la connexion PostgreSQL Le programme d'installation va suggérer les paramètres par défaut pour terminer la configuration de votre connexion PostgreSQL. Vous pouvez accepter les valeurs par défaut, ou le modifier selon vos besoins. f. Créer des raccourcis Sélectionnez un dossier dans le Démarrer menu dans lequel vous souhaitez créer les raccourcis du programme. g. Installer L'installation automatique du serveur OpenERP commence et vous pouvez visualiser ses progrès. h. Finitioon Lors de l'installation réussie de OpenERP Server, vous obtiendrez une confirmation appropriée. Vous pouvez cliquez sur Terminer pour fermer l'assistant d'installation. OpenERP Server est installè en tant que service Windows. Cela signifie que vous ne devez pas démarrer le serveur à chaque fois que vous démarrez l'ordinateur et il fonctionne sans avoir besoin d'une session utilisateur ouverte.  Configuration personnalisée Pour initialiser le serveur avec des configurations de votre choix, vous avez de l'invoquer à l'invite de commandes de Windows avec les options que vous souhaitez remplacer. Accédez au répertoire d'installation dans C: Program Files OpenERP 6.1 Server et tapez cette commande mais ne pas l'exécuter encore: openerp-server.exe -d <db_name> -r <db_user> -w <db_password> --db_host = <postgresql_server_address> --db_port = <port_no> --logfile = "<fichier journal>" L'initialisation de OpenERP Server fournit les informations nécessaires pour la connexion à la base de données PostgreSQL et le choix des données à charger. Voici l'explication des options utilisées:  -d <db_name> : Nom de la base de données créée pour OpenERP Server.  -r <db_user> : Nom de l'utilisateur PostgreSQL (rôle).  -w <db_password> : Mot de passe de l'utilisateur PostgreSQL.  --db_host = <postgresql_server_address> : Adresse du serveur sur lequel est PostgreSQL. Si vous avez installé PostgreSQL sur le même ordinateur que OpenERP Server, vous pouvez entrer localhost , sinon, l'adresse IP ou le nom du serveur distant.
  14. 14. 14  --db_port = <port_no> : numéro de port où PostgreSQL écoute. La valeur par défaut est 5432.  --stop-après-init : Cette option arrête le serveur après l'initialisation.  --logfile = "<fichier journal>" : spécifier un autre fichier journal où tous la sortie de serveur sera sauvé. La valeur par défaut est C: Program Files OpenERP 6.1 Server openerp-server.log . Avant l'exécution de cette commande, vous devez décider de l'objectif de la base de données créée dans OpenERP. Exemple de commande: openerp-server.exe -d -r openerpdemo openpg -w openpgpwd --db_host = localhost --logfile = "C: Users minuscule Desktop demo_db.log" --db_port = 5430 --stop-après-init Ici, vous devez entrer le nom d'utilisateur et mot de passe spécifié dans la configuration de la connexion PostgreSQL lors de l'installation du serveur. Lorsque vous exécutez la commande d'initialisation, si vous spécifiez un fichier journal, la sortie d'exécution du serveur est écrit à ce fichier, et vous ne verrez aucune sortie de serveur dans la fenêtre d'invite. Vous avez seulement à attendre l'invite revient. Décider sur le but de la base de données Vous pouvez initialiser la base de données avec OpenERP Server pour: 1. Jetez un oeil sur le système avec des modules installés et des données de démonstration chargé 2. Installer un nouveau système de base de données propre (sans données de démonstration) 3. Mettre à niveau une version existante Avec des modules et des données de démonstration Si vous exécutez la commande de l'échantillon ci-dessus, vous obtiendrez une base de données avec seulement modules de base installé et chargé avec des données de démonstration. Pour initialiser OpenERP Server avec des modules supplémentaires et ses données de démonstration, vous devez ajouter cette option à la commande ci-dessus: -i <nom du module> Exemple de commande: openerp-server.exe -d openerpdemo --stop-après-init -i vente Cette commande va initialiser le serveur d'OpenERP avec le module vente et de ses dépendances, et de remplir sa base de données PostgreSQL avec leurs données de démonstration connexes. Comme on peut le voir, vous devez spécifier la base de données cible pour l'installation du module.
  15. 15. 15 Pour installer plus d'un module, spécifier une liste des modules séparés par des virgules à la ligne de commande. Sans données dèmo (ou nouvelle version propre) Exécutez la commande avec une option excluant les données de démonstration: - sans - démo = tous Cela va charger modules de base (et d'autres modules si l'option -i est utilisé), mais ne sera pas charger ses données de démonstration. Exemple de l'utilisation de la commande: openerp-server.exe -d openerpdemo = all --stop-après-init --without-démo Si vous avez déjà initialisé la base de données avec des données de démonstration chargé, vous pouvez créer une nouvelle base de données et exécutez la commande ci-dessus sur elle. Mettre à jour la base de données Exécutez la commande avec une option qui met à jour les structures de données: - mise à jour = tous Exemple de l'utilisation de la commande: openerp-server.exe -d openerpdemo --stop-après-init --update = all  Contrôle du serveur OpenERP : Le service et l'exécution des informations est accessible via la console Gestion de l'ordinateur dans Outils d'administration. Dans ce cas OpenERP 6.1 dans la liste des services
  16. 16. 16 Ici, vous pouvez définir la façon dont le service doit agir en cas de défaillance du serveur. Accédez aux propriétés du service en double-cliquant sur OpenERP 6.1 dans la liste. onglet Récupération pour régler réponse d'échec de service Le service de journalisation Gestion de l'ordinateur offre des informations supplémentaires sur l'exécution du OpenERP Server, par exemple, le démarrage ou l'arrêt du service d'information. Information sur le serveur dans la liste Journaux Windows La Sortie d'exécution de serveur OpenERP (Runtime Output) peut être trouvé dans le fichier journal par défaut. Étant donné que le serveur est maintenant en cours d'exécution en tant que service Windows, il ne fait pas de sortie des messages d'exécution. Pour cela, le fichier journal est la seule option. Y accéder depuis le Démarrermenu, à travers la Vue journal lien dans le groupe des raccourcis pour OpenERP 6.1. Sinon, utilisez le chemin C: Program Files OpenERP 6.1 Server openerp- server.log .
  17. 17. 17 OpenERP fichier journal du serveur Vous pouvez savoir si OpenERP est en cours d'exécution en invoquant le Gestionnaire des tâches de Windows . Lorsque vous regardez le processus onglet, vous verrez OpenERPServerService.exe et openerp-server.exe , les deux ayant SYSTÈME comme leur utilisateur (voir ci, Afficher les processus de tous les utilisateurs doivent être activés dans le Gestionnaire des tâches). Les services dans le Gestionnaire des tâches de Windows
  18. 18. 18 2-3- Installation et configuration de Client Web : Note : Le client Gtk n’est pas développé au-delà de la version 6 Vous devez installer, configurer et exécuter l'OpenERP serveur avant d'utiliser le Web OpenERP. Le client Web a besoin que le serveur fonctionne. Vous pouvez installer l'application serveur sur votre ordinateur ou sur un serveur indépendant accessible par réseau.  Téléchargement du web OpenERP Le OpenERP Web peut être téléchargé depuis la page de téléchargement de site OpenERP . Sous automatique sous Windows Installer, choisissez Web pour télécharger la version autonome de Web OpenERP.  Installation du Web OpenERP Cliquez sur le fichier d'installation exécutable que vous venez de télécharger, et de procéder aux étapes suivantes: a. Choisir la langue d'installation La valeur par défaut est l'anglais . L'autre option est français . b. Message de bienvenue Suivez attentivement les recommandations données dans cette étape. c. Accord de licence Il est important que vous acceptez la licence publique OpenERP (OEPL) Version 1.1 de procéder à l'installation. Cette licence est basé sur la Mozilla Public Licence (MPL) Version 1.1. d. Sélectionner un dossier pour l'installation
  19. 19. 19 Par défaut, OpenERP Web est installé dans C: Program Files OpenERP 6.0 Web .Pour installer dans un dossier différent, recherchez un emplacement différent (de dossier) à cette étape. e. Créer des raccourcis Sélectionnez un dossier dans le Démarrer menu dans lequel vous souhaitez créer les raccourcis du programme. f. Installer L'installation automatique de OpenERP Web commence et vous pouvez visualiser ses progrès. g. Finition Lors de l'installation réussie de OpenERP Web, vous obtiendrez une confirmation appropriée. Cliquez sur Terminer pour fermer l'assistant d'installation. Le service Windows pour OpenERP Web Server est également installé et est configuré pour démarrer automatiquement le serveur au démarrage du système.  Démarrage du client Web Le serveur Web en cours d'initialisation et les réglages enregistré, vous pouvez démarrer le client OpenERP Web. Utilisez un navigateur Web de votre choix pour vous connecter à OpenERP Web. Si votre client Web est installé sur le même ordinateur que le serveur, vous pouvez naviguer vers http: // localhost: 8069 pour se connecter à la version web d'OpenERP. Si le serveur est installé sur un ordinateur séparé, vous devez connaître le nom ou l'adresse IP du serveur sur le réseau et accédez à http: / / <adresse_serveur>: 8069 pour se connecter à OpenERP.
  20. 20. 20 Client Web au démarrage C- Installation OpenERP 7.0 sur Linux (Ubuntu 14.04 LTS) : 1- Construire votre serveur : On va installer juste le strict minimum de la routine d'installation (vous pouvez installer le openssh-server au cours de la procédure d'installation ou installer la suite en fonction de vos besoins). Après le redémarrage du serveur pour la première fois je installer le openssh-server paquet (afin que nous puissions connecter à distance) et denyhosts pour ajouter un degré de protection attaque par force brute. Il existe d'autres applications de protection disponibles: Je ne dis pas que celui-ci est le meilleur, mais il est celui qui fonctionne et est facile à configurer et à gérer. Si vous ne le faites pas déjà, il est aussi intéressant de regarder la mise en place de l'accès ssh à base de clés, plutôt que de compter sur les mots de passe. Cela peut aussi aider à limiter le potentiel d'attaques par force brute. [NB: Ceci est pas un How To sur la sécurisation de votre serveur ...] sudo apt-get install denyhosts openssh-server Maintenant, assurez-vous que votre serveur dispose de toutes les dernières versions et correctifs en faisant une mise à jour: sudo apt-get update sudo apt-get dist-upgrade Bien que pas toujours indispensable, il est probablement une bonne idée de redémarrer votre serveur maintenant et assurez-vous que tout revient et vous pouvez vous connecter via ssh. Maintenant, nous sommes prêts à commencer l'installation OpenERP.
  21. 21. 21 2-Créer l'utilisateur OpenERP qui sera le propriétaire : sudo adduser --system --home = / opt / openerp --group openerp Ceci est un "système" utilisateur. Il est là pour posséder et exécuter l'application, il est pas censé être un utilisateur de type personne avec un login etc. Dans Ubuntu, un utilisateur du système reçoit un UID en dessous de 1000, n'a pas d'enveloppe (il est en fait / bin / false ) et a logins désactivé. Notez que je l'ai précisé un «foyer» de / opt / OpenERP , ceci est où le code du serveur OpenERP va résider et est créé automatiquement par la commande ci-dessus. L'emplacement du code du serveur est votre choix de cours, mais sachez que certaines des instructions et des fichiers de configuration ci-dessous peut-être besoin d'être modifié si vous décidez d'installer à un autre endroit. [Note: Si vous voulez exécuter plusieurs versions d'OpenERP sur le même serveur, la façon dont je fais est de créer plusieurs utilisateurs avec le numéro de version correcte, car une partie du nom, par exemple openerp70, openerp61 etc. Si vous utilisez également quand créer les utilisateurs Postgres aussi, vous pouvez avoir une séparation complète des systèmes sur le même serveur. Je l'utilise aussi les répertoires nommés de façon similaire à la maison, par exemple, / opt / openerp70, / opt / openerp61 et config et les fichiers de démarrage / arrêt. Vous aurez également besoin de configurer des ports différents pour chaque instance ou bien seule la première sera commencer.] Une question m'a demandé quelques fois est de savoir comment exécuter le serveur OpenERP que l'utilisateur du système d'OpenERP depuis la ligne de commande si elle n'a pas de coquille. Cela peut se faire assez facilement: sudo su - -s OpenERP / bin / bash Ce sera su de votre terminal connexion actuelle à l'utilisateur d'OpenERP (le « - »entre su et OpenERP est correcte) et utiliser le shell / bin / bash . Lorsque cette commande est exécutée, vous serez dans le répertoire d'accueil de OpenERP: / opt / OpenERP . Lorsque vous avez fait ce que vous avez besoin, vous pouvez quitter le shell de l'utilisateur de OpenERP en tapant exit . 3- Installer et configurer le serveur de base de données, PostgreSQL sudo apt-get install postgresql Puis configurer l'utilisateur OpenERP sur postgres: Premier changement pour l'utilisateur postgres si nous avons les privilèges nécessaires pour configurer la base de données. sudo su - postgres Maintenant, créez un nouvel utilisateur de base de données. Il en est ainsi OpenERP a des droits d'accès pour se connecter à PostgreSQL et de créer et supprimer des bases de données. Rappelez-vous ce que votre choix de mot de passe est ici; vous en aurez besoin plus tard: createuser --createdb --username-CREATEROLE --no postgres --no-super --pwprompt openerp Entrez le mot de passe pour le nouveau rôle: ******** Entrez à nouveau: ********
  22. 22. 22 Enfin la sortie du compte de l'utilisateur postgres: Sortie 4- Installez les bibliothèques Python nécessaires pour le serveur sudo apt-get install python-dateutil python-docutils python-feedparser python-gdata python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-maquette python-openid python-psycopg2 python-psutil python-pybabel python -pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi Avec ce fait, toutes les dépendances pour l'installation OpenERP 7.0 sont maintenant satisfaits (noter qu'il ya des nouveaux packages nécessaires depuis 6.1). 5- Installez le serveur d'OpenERP Je tends à utiliser wget pour ce genre de chose et je télécharge les fichiers de mon répertoire. Assurez-vous que vous obtenez la dernière version de l'application: au moment de la rédaction de ce qu'il est 7.0. Je suis les liens de téléchargement à partir de leurs pages de téléchargement (noter qu'il ya également deb , rpm et exe construit dans ce domaine aussi). Il n'y a pas une version 7.0 en tant que telle archive statique plus, mais il ya une nightly build de l'arbre 7,0 source qui devrait être tout aussi bon et qui contiendra les correctifs comme et quand les choses se fixe. Le lien ci-dessous est à l'archive source pour la branche 7.0. Remarque: Comme une méthode alternative d'obtenir le code sur votre serveur, Jérôme a ajouté un commentaire très utile montrant comment l'obtenir directement de bord. Merci! wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz Maintenant, installez le code où nous en avons besoin: cd à la / opt / openerp / répertoire et extraire l'archive cd / opt / openerp sudo tar xvf ~ / openerp-7,0-latest.tar.gz Ensuite, nous devons changer la propriété de tous les fichiers à l'utilisateur d'OpenERP et le groupe que nous avons créé plus tôt. sudo chown -R openerp * Et enfin, la façon dont je l'ai fait est de copier le répertoire du serveur à quelque chose avec un nom plus simple afin que les fichiers de configuration et les scripts de démarrage ne doivent édition constant (je l'ai appelé, plutôt platement, serveur). Je commencé en utilisant une solution de lien symbolique, mais je trouve que quand il vient à la mise à niveau, il semble faire plus de sens pour moi de simplement conserver une copie des fichiers en place, puis les écraser avec le nouveau code. De cette façon vous garder toute coutume ou des modules et des rapports installés par l'utilisateur, etc. tous dans le bon endroit. sudo cp -a openerp-server 7.0 A titre d'exemple, devrait OpenERP 7.0.1 sortir bientôt, je peux extraire les archives tar dans / opt / openerp / comme ci-dessus. Je peux faire tous les essais que je dois, puis répétez la commande de copie de sorte que les fichiers modifiés seront remplacer selon les besoins et tous les modules personnalisés, des modèles de rapport
  23. 23. 23 et ne sera conservé. Après avoir vérifié la mise à niveau est stable, les 7.0 répertoires anciens peuvent être enlevés si désiré. Voilà le logiciel serveur installé OpenERP. Les dernières étapes d'un système de travail est de mettre en place le fichier de configuration et de script de démarrage associé afin OpenERP démarre et arrête automatiquement lorsque le serveur lui-même arrête et démarre. 6- Configuration de l'application OpenERP Le fichier de configuration par défaut pour le serveur (dans / opt / openerp / serveur / install / ) est en fait très minime et sera, avec seulement un petit travail de changement bien donc nous allons simplement copier ce fichier là où nous en avons besoin et de le changer est la propriété et les autorisations: sudo cp /opt/openerp/server/install/openerp-server.conf / etc / sudo chown OpenERP: /etc/openerp-server.conf sudo chmod 640 /etc/openerp-server.conf Les commandes précédentes rendent le fichier détenue et écriture que par l'utilisateur et le groupe d'OpenERP et seulement lisibles par OpenERP et la racine. Pour permettre au serveur de OpenERP pour exécuter d'abord, vous ne devriez avoir besoin de changer une ligne dans ce fichier. Vers le haut du fichier changer la ligne db_password = False au même mot de passe que vous avez utilisé de retour à l'étape 3. Utilisez votre éditeur de texte favori ici. Je tends à utiliser nano, par exemple, sudo nano /etc/openerp-server.conf Une autre ligne, nous pourrions aussi bien ajouter au fichier de configuration maintenant, est de dire OpenERP où écrire son fichier journal.Pour compléter mon endroit proposé ci-dessous, ajoutez la ligne suivante à la openerp-server.conf fichier: logfile = /var/log/openerp/openerp-server.log Une fois le fichier de configuration est modifié et enregistré, vous pouvez démarrer le serveur juste pour vérifier si elle fonctionne effectivement. sudo su - -s OpenERP / bin / bash / opt / openerp / serveur / openerp-server Si vous vous retrouvez avec quelques lignes éventuellement disant OpenERP est en marche et d'attente pour les connexions alors vous êtes tous ensemble. 7- Installation du script de démarrage Pour l'étape finale, nous devons installer un script qui sera utilisé pour le démarrage et arrêter le serveur automatiquement et également exécuter l'application que l'utilisateur correct. Il ya un script que vous pouvez utiliser dans /opt/openerp/server/install/openerp-server.init mais cette aurez besoin de quelques petites modifications pour fonctionner avec le système installé la façon dont je l'ai décrit ci-dessus. Voici un lien à celui que je 'ai déjà modifié pour 7,0.
  24. 24. 24 Similaire au fichier de configuration, vous devez soit copier ou coller le contenu de ce script dans un fichier dans /etc/init.d/ et l'appeleropenerp-server . Une fois qu'il est à la bonne place, vous aurez besoin de le rendre exécutable et appartenant à root: 755 /etc/init.d/openerp-server de sudo sudo chown root: /etc/init.d/openerp-server Dans le fichier de configuration, il ya une entrée pour le fichier de log du serveur. Nous devons créer ce répertoire d'abord pour que le serveur a un endroit pour se connecter à et aussi nous doit rendre accessible en écriture par l'utilisateur OpenERP: / var sudo / log / openerp sudo chown OpenERP: root / var / log / openerp 8-Test du serveur Pour démarrer le type de serveur OpenERP: sudo début Vous devriez maintenant être en mesure d'afficher le fichier journal et de voir que le serveur a démarré. moins /var/log/openerp/openerp-server.log Si il ya des problèmes à partir du serveur, vous devez revenir en arrière et vérifier. Il n'y a vraiment pas de point sur le labour si le serveur ne démarre pas ... OpenERP écran de gestion de base de données 7 Si le fichier journal semble OK, maintenant pointer votre navigateur web à l'adresse de domaine ou l'adresse IP de votre serveur OpenERP (ou localhost si vous êtes sur la même machine) et utilisez le port 8069. L'URL ressemblera à quelque chose comme ceci: http://IP_or_domain.com:8069 Ce que vous devriez voir un écran comme celui-ci (il est l'écran de gestion de base de données parce que vous avez pas encore de bases de données de OpenERP): Ce que je ne vous recommande de faire à ce stade est de changer le mot de passe de super-admin à quelque chose belle et forte (Cliquez sur le menu "Mot de passe"). Par défaut, ce mot de passe est tout simplement "admin" et sachant que, un utilisateur peut créer, sauvegarder, de restaurer et de déposer les bases de données! Ce mot de passe est stocké dans le texte brut dans le /etc/openerp-server.conffichier; donc pourquoi
  25. 25. 25 nous avons limité l'accès à tout openerp et la racine . Lorsque vous modifiez et enregistrez le nouveau mot de passe/etc/openerp-server.conf fichier sera réécrit et aurez beaucoup plus d'options en elle. Maintenant il est temps pour vous assurer que le serveur arrête bien trop: sudo arrêt Vérifiez à nouveau le fichier journal pour vous assurer qu'il est arrêté et / ou de regarder la liste des processus de votre serveur. 9- Automatisation OpenERP démarrage et d'arrêt Si tout ce qui précède semble fonctionner OK, l'étape finale est de faire le début de script et arrête automatiquement avec le serveur Ubuntu. Pour faire ce type: sudo update-rc.d défaut openerp-serveur Vous pouvez maintenant essayer vous de redémarrer le serveur si vous le souhaitez. OpenERP doit être exécuté par le temps que vous vous connectez avant. Si vous tapez ps aux | grep openerp vous devriez voir une ligne semblable à ceci: openerp 1491 0,1 10,6 207 132 53 596? Sl 22h23 00h02 python / opt / openerp / serveur / openerp-server -c /etc/openerp-server.conf Ce qui montre que le serveur est en cours d'exécution. Et bien sûr, vous pouvez vérifier le fichier journal ou visitez le serveur à partir de votre navigateur web trop. OpenERP 7.0 Ecran principal de configuration
  26. 26. 26 D- OpenERP : Windows vs Linux ? : (Vue Générale) La documentation officielle ne met pas en jeu une grande différence entre les performances sur Windows ou sur Linux, en revanche la communauté de l’Odoo7 valorise bien l’implémentation linux plutôt que Windows pour des raisons de stabilité de rapidité. Ceci est dû à plusieurs raisons tel que le besoin a un haut niveau de compilation de dépendances sur Windows pour assurer une performance proche de celle sur linux Mai sur le plan théorique on pourrait mettre en œuvre la comparaison entre les 2 systèmes selon plusieurs critères : Windows (7 ou 8) Linux (Debian/Ubuntu) Temps de Téléchargement moyen petit Temps d’installation moyen petit Configuration Automatique (standard) Manuelle (plus maitrisée) Niveau Paramétrage Standard Elevé (tout est commandé) Dépendances Elevé (compilation répétitive de paquets dépendants) Réduit (tous les paquets sont compilés dès l’installation) Rapidité normale bonne Sécurité Minimale Haute Stabilité Normale Assez bien Privilèges (droits d’accès) Standard Privilège Conflit matériel Possible (port) Résolu dès l’installation Possibilité de réglages dès l’installation Utilisation graphique Graphique ou ligne de commande Methodes de réglages Manuelle Manuelle ou Par ligne de commandes Windows VS LINUX 4 – 8 (Linux)
  27. 27. 27 Quelques avis de la communauté : (expériences de déploiement) :
  28. 28. 28 E- Audit sur les performances OpenERP Sifast : 1- Constatation : La plateforme OpenERP Sifast est une plateforme de gestion d’équipes, projets, RH, finances … installée sous Windows. Après la manipulation de la plateforme sur un VM de tests, dès limites de performances ont été remarqués :  Lourdeur partielle de la plateforme lors du passage entre les volets des modules Projet Rh spécialement (Ce sont les modules qui mettent recours aux données PostgreSQL via l’ORM)  Surcharge base  Retard de chargement Graphique des différents vues (parsing XML) , et par conséquent retard de chargement des actions (boutons ) & diffusion des messages d’erreur lors des clicks rapides avant chargement complet de la page demandée  Problème de mapping Xml-rpc & xml-rpc Secure relativement aux paquets pythons de liaisons actions- vue (contrôleur + view)  Problème dépendances Windows –Python (retard de compilations des paquets)  Parmi les inconvénients du déploiement sur Windows  Lourdeur excessive de l’utilisation de toute la plateforme lors des moments de pointe (temps de fin de journée ou les ingénieurs de différentes équipes viennent de déposer des données relatives à leur avancement (problème accès concurrentiel)  * Origines des problèmes (surcharge sur la base : mauvaise implémentation du PostgreSQL sur Windows et manque de dépendances python assurant la fiabilité de l’ORM à optimiser le dialogue User – Base) * Serveur d’application werkzeug , serveur dédié aux petites et aux moyennes implémentations , d’après la documentation officielle et les avis communauté ; le nombre max d’intégration d’utilisateurs pour un bon fonctionnement de la plateforme varie entre 120 et 180 user , des statistiques d’utilisations indiquent qu’a partir 40 user connectés simultanément sur un même volet (exemple : pointage) , les doutes de rapidité commencent à apparaitre , et une lourdeur de la plateforme se met en jeu bue la quasi-faiblesse du serveur d’application  Faiblesse du système contre les attaques ; la plateforme a intégré des failles de sécurité qui ont engendré la réussite de tentatives de piratage à avoir accès aux données de la plateforme
  29. 29. 29  Manque de control et non perméabilité Windows (port ouverts, unicité des mots de passés, non différenciation entre les comptes user (user , super user , openerp user , PostgreSQL user) 2-Techniques / Astuces d’optimisation de Performances & Mise en comparaison d’efficacité de réalisation Windows vs Linux : 2-1 – OPTIMISATION SUR SERVEUR : Pour ce faire il faut tout d’abord accéder en écriture sur le fichier de config serveur présent dans le répertoire d’installation de l’OpenERP NB : On pourrait accéder via « -c » command si on est sur une plateforme Linux ./server/openerp-server -c /path/to/openerp-server.conf On listera ainsi les différentes lignes de ce fichier tout en recommandant les changements bénéfiques pour une meilleure performance par des commentaires # GRIS : fonctionnalités de la ligne # VIOLET : Propositions  Options de démarrage serveur (Startup) : # Admin password for creating, restoring and backing up databases admin_passwd = admin # default CSV separator for import and export csv_internal_sep = , # to compress reports # PROPOSITION : On pourrait utilizer l’option “True” pour compresser les rapports reportgz = False
  30. 30. 30 # disable loading demo data for modules to be installed (comma-separated, use "all" for all modules) # PROPOSITION : Utiliser l’option « True » qui annulera l’affichage des demo d’utilisation des modules without_demo = False # Use this for big data importation, if it crashes you will be able to continue at the current state. Provide a filename to store intermediate importation states. # PROPOSITION & RECOMMANDATION : l’import de données pourrait engendrer un crash brusque de la plateforme ; cette option recommande de donner un nom à la partie de données partiellement importés pour éviter d’abandonner l’état actuel et et assure la continuité d’après crash . -> laisser cette option –sans nom- désactive cette option, d’où c’est fort recommandé de l’activer par donner un nom. Ex : import_partial = partial import_partial = # file where the server “PID” will be stored # PROPOSITION : sur une éventuelle plateforme Linux, cette option stockera le PID du serveur OpenERP dans un fichier qu’on indiquera son nom et son chemin, cette option semble être utile si le serveur local supporte différents plateformes d’accès en concurrence, d’où indiquer le PID (priorité) améliorera la performance du serveur OpenERP en lui affectant une priorité supérieures pidfile = None # specify additional addons paths (separated by commas) # PROPOSITION : On pourrait utiliser deux dossiers addons ou +, ceci paraitra bénéfique si on utilise un dossier supplémentaires pour les modules manuellement développés. Différents critères de choix : modules originales/développés, modules lourds (fort surcharge sur la base de données), modules confidentiels, non testés, pour les utilisations peu fréquentes… Ceci pourrait donner une vitesse supplémentaire à toute la plateforme surtout lors du démarrage addons_path = /full/path/to/addons
  31. 31. 31 # Comma-separated list of server-wide modules default=web server_wide_modules = None  Options XML-RPC / HTTP – XML-RPC (Déconseillé d’être activé) # disable the XML-RPC protocol xmlrpc = True # Specify the TCP IP address for the XML-RPC protocol. The empty string binds to all interfaces. xmlrpc_interface = # specify the TCP port for the XML-RPC protocol # PROPOSITION : utiliser un autre port outre que 8069 favorise la sercuritè xmlrpc_port = 8069 # Enable correct behavior when behind a reverse proxy proxy_mode = False  Options XML-RPC / HTTPS – XML-RPC Secure (fortement recommandé – SSL connexion) # disable the XML-RPC Secure protocol xmlrpcs = True # Specify the TCP IP address for the XML-RPC Secure protocol. The empty string binds to all interfaces. xmlrpcs_interface =
  32. 32. 32 # specify the TCP port for the XML-RPC Secure protocol # PROPOSITION : utiliser un autre port outre que 8069 (usuel) et 8071 (ssl) favorise de + la sécurité de la plateforme xmlrpcs_port = 8071 # specify the certificate file for the SSL connection secure_cert_file = server.cert # specify the private key file for the SSL connection secure_pkey_file = server.pkey  NET-RPC – NET-RPC Configuration # enable the NETRPC protocol netrpc = False # specify the TCP IP address for the NETRPC protocol netrpc_interface = # specify the TCP port for the NETRPC protocol
  33. 33. 33 # PROPOSITION : utiliser un autre port outre que 8070 connu pour ce type de chargement favorise la sécurité netrpc_port = 8070  WEB – Web interface Configuration # Filter listed database REGEXP # PROPOSITION : introduire un (ou +) filtre de parcours de BD (ex : name , date , size…) dbfilter = .*  Static HTTP – Static HTTP # enable static HTTP service for serving plain HTML files # PROPOSITION : Dans le cas de la présence de modules qui présentent un chargement de pages HTML Statique, activer cette option favorise la perméabilité du serveur à les traiter static_http_enable = False # specify the directory containing your static HTML files (e.g '/var/www/') static_http_document_root = None # specify the URL root prefix where you want web browsers to access your static HTML files (e.g '/') static_http_url_prefix = None
  34. 34. 34  Options de Tests: # Launch a YML test file. test_file = False # If set, will save sample of all reports in this directory. # PROPOSITION : faudra mieux de spécifier un dossier pour les rapports de tests , l’option false mettra les rapports dans la cache de la plateforme en forme de cookies sur navigateur ou de mémoire vive (ralentissement prèvue) test_report_directory = False # Enable YAML and unit tests. test_enable = False # Commit database changes performed by YAML or XML tests. test_commit = False  Logging Group – Logging Configuration # file where the server log will be stored logfile = None # do not rotate the logfile logrotate = True
  35. 35. 35 # Send the log to the syslog server syslog = False # setup a handler at LEVEL for a given PREFIX. An empty PREFIX indicates the root logger. This option can be repeated. Example: "openerp.orm:DEBUG" or "werkzeug:CRITICAL" (default: ":INFO") # PROPOSITION :indiquer des préfixes , indiquera les origines d’erreur log_handler = [':INFO'] # specify the level of the logging. Accepted values: info, debug_rpc, warn, test, critical, debug_sql, error, debug, debug_rpc_answer, notset log_level = info  SMTP Group – SMTP Configuration # specify the SMTP email address for sending email email_from = False # specify the SMTP server for sending email smtp_server = localhost # specify the SMTP port # PROPOSITION :changer ce port (meilleure sécurisation) smtp_port = 25 # specify the SMTP server support SSL or not
  36. 36. 36 # PROPOSITION :un connexion ssl est désormais conseillèe smtp_ssl = False # specify the SMTP username for sending email smtp_user = False # specify the SMTP password for sending email smtp_password = False  Database related options # specify the database name db_name = False # specify the database user name db_user = openerp # specify the database password db_password = False # specify the “pg” executable path pg_path = None
  37. 37. 37 # specify the database host db_host = False # specify the database port db_port = False # specify the the maximum number of physical connections to posgresql # PROPOSITION :on pourrait augmenter le nombre de connexions physiques au serveur Postgres , ce qui est deconseillè db_maxconn = 64 # specify a custom database template to create a new database db_template = template1  Options d’internationalisation # PROPOSITION : indiquer les modules qu’on a besoin d’en obtenir une certaine traduction , ceci diminue de la lourdeur du chargement des modules translate_modules = ['all']  Options de sécurisation: # disable the ability to return the list of databases # PROPOSITION : assurer la protection de la base en désactivant cette option list_db = True  Options Avancèes:
  38. 38. 38 # enable debug mode debug_mode = False # specify reference timezone for the server (e.g. Europe/Brussels") timezone = False # Force a limit on the maximum number of records kept in the virtual osv_memory tables. The default is False, which means no count-based limit. # PROPOSITION : s’assurer d’activer la non-limitation du nombre osv_memory_count_limit = False # Force a limit on the maximum age of records kept in the virtual osv_memory tables. This is a decimal value expressed in hours, and the default is 1 hour. osv_memory_age_limit = 1.0 # Maximum number of threads processing concurrently cron jobs (default 2) # PROPOSITION : cette option traite la chronologie des différents threads, l’option « 2 » précise que le système d’exploitation traite 2 threads d’une façon périodique afin de nettoyer un job après sa terminaison Le nombre conseillé c’est 2, 4 est aussi conseillé sauf que ça ralentisse l’exécution mais favorise le traitement (moindre chance de crash) NB : c’est une option supportée uniquement pour les environnements Unix max_cron_threads = 2 # Use the unaccent function provided by the database when available. unaccent = False
  39. 39. 39  Multiprocessing options # Specify the number of workers, 0 disable prefork mode. # PROPOSITION : le prefork mode associe un nombre de threads (requests) dans un seul process , ceci engendre une réduction de consommation CPU mai une besoin élevé sur ressources (RAM) VOIR L’EXPLICATION SUIVANTE workers = 0 # Maximum allowed virtual memory per worker, when reached the worker be reset after the current request (default 671088640 aka 640MB) # PROPOSITION :les options suivants sont des options de spécification mémoire / temps , les valeurs sont par défaut , mais augmenter les tailles pourrait donner + d’agilité à a plateforme limit_memory_soft = 671088640 # Maximum allowed virtual memory per worker, when reached, any memory allocation will fail (default 805306368 aka 768MB) limit_memory_hard = 805306368 # Maximum allowed CPU time per request (default 60) limit_time_cpu = 60 # Maximum allowed Real time per request (default 120) limit_time_real = 120 # Maximum number of request to be processed per worker (default 8192) limit_request = 8192 Difference Worker/Prefork:
  40. 40. 40 Exemple : un nombre de process , chaque process necessite 1% cpu et 10mb de RAM. /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ -> en somme on a 4 process qui utilisent 4% CPU et 40MB de RAM. Nous allons utiliser des chiffres similaires ici, mais on se permet de supposer que le prefork a un peu plus de ressources que le modèle de processus par processus. /------------- | Worker MPM | ----------> Request | Worker MPM | ----------> Request | | Worker MPM | ----------> Request | | Worker MPM | ----------> Request / ____________/  Tout ça utilisent 2% CPU et 25 MB ram. 2-2 – Mesure & Analyse de Performances (Techniques de mesures) :  Surveiller les temps de réponse de la Plateforme :  Vous ne pouvez pas gérer / améliorer ce que vous ne pouvez pas mesurer  Solution : Configurer une surveillance automatisée de la performance et le temps de réponse ... même si vous avez pas problème de performance.  Outil proposé : munin  Comment ? : Exécutez OpenERP avec l’option (Linux) -log-level = debug_rpc (en prod)
  41. 41. 41
  42. 42. 42  Analyse / Mesure des performances PostgreSQL : Reglages sur postgresql.conf : log_min_duration_statement = 50 Réglez à 50 ou 100 dans prod Mettre à « 0 » pour connecter toutes les requêtes et les temps d'exécutions pour un certain temps Analyse avec pgBadger ou pgFouine : (fortement recommandè d’installer sous Linux) D’où une simple mise en analyse (logs) avec cette outil donne un certain nombre de mesures , on en cite :
  43. 43. 43  Cependant on pourrait executer un certain nombre de script SQL afin de determiner les tailles des tables selon la longuer , la grandeur , frequence de lecture , frequence de modification… d’où l’optimisation pourrait se faire sur la base elle-même , et on a interet ainsi , à combiner ou enlevr les tables quasiment non utilisès , decomposer /fragmenter les tables a grades tailles/contenus pour une moindre surcharge , ce qui pourrait optimiser le dialoguer OpenERP – POSTGRESQL et par consequent toue la plateforme
  44. 44. 44
  45. 45. 45  Utilitaire de surveillance en ligne de commande des requêtes en cours, bloquées et en attente
  46. 46. 46 3-Problèmes Reconnus : PostgreSQL  Problèmes des Fonctions stockées :  Domaines fonctionnels stockés sont des « Trigger »  Store trigger peuvent être de la forme :  Peut être très coûteux avec des paramètres erronés ou des fonctions lentes  Problèmes des Lentes Requêtes : Toutes les requêtes SQL 500ms + doivent être analysés  Utilisez EXPLAIN ANALYZE pour examiner / vous mesurer les requêtes et les vues SQL  Essayez d'enlever les parties de la requête jusqu'à ce qu'elle soit rapide, puis la fixer  Vérifier la cardinalités des grande « JOINs »
  47. 47. 47  Stratégie d'évaluation de domaine par défaut : search ([('picking_id.move_ids.partner_id', '! =', False)]) Mise en œuvre en combinant les parties "id IN (....)"  Jeter un oeil à _auto_join dans OpenERP 7.0 'move_ids': fields.one2many ('stock.move', 'picking_id', string = 'Moves », _auto_join = True)  Aucune optimisation prématurée: ne pas écrire SQL, utiliser l'ORM toujours au cours du développement initial  Si vous détectez un point chaud avec charge-tests, pensez à réécrire les parties inefficaces dans SQL tout en s’assurant de : Faire des mécanismes de sécurité que vous n'êtes pas en contournant Ne pas créer SQL vecteurs d'injection utilisent des paramètres de la requête, → ne pas concaténer entrée de l'utilisateur dans vos chaînes SQL.  Problèmes des verrouillages personnalisés :  Toute sorte de mécanisme de verrouillage manule / files d'attente est dangereuses, surtout en Python  « Python Locks » peuvent provoquer des impasses qui ne peuvent être détectés et brisés par le système  Éviter, et si vous devez, utiliser la base de données « lock » Voilà ce que devrait emplois (ir.cron) faire: SELECT FOR UPDATE sur la ligne de travaux de cron → Le nettoyage automatique / presse → Balances bien et fonctionne en multi-processus
  48. 48. 48 4-Recommandations & Conclusions :  Maitriser le framework :  Évitez les anti-modèles (Patterns) : Assurez-vous que vous comprenez vraiment le mecanisme browse() Assurez-vous d'utiliser correctement l'API de lot  Ne pas écrire SQL sauf si vous devez, ex : pour: Vues d'analyse,Fonctions de Hot Spot, name_search (), computed_fields (), ...
  49. 49. 49
  50. 50. 50  Installer & Utiliser les outils de Mesures de performances : La plupart des outils de mesures/tests déjà cités sont des packages Linux  Préférable d’installer toutes la plateforme sur un environnement Linux  Optimisation de l’utilisation serveur / Base :  En préciser les différents options de réglages déjà cité selon le besoin et l’utilisation  Environnement Linux beaucoup mieux conseillé  Conseil à propos le déploiement du PostgreSQL  Évitez déploiement PostgreSQL sur une machine virtuelle Si vous devez le faire, d'affiner le VM pour I / O!  Et toujours vérifier l'optimisation des performances de base de données PostgreSQL, elle est conservatrice par défaut

×