- Timestamp:
- 26/09/2011 12:23:32 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workshop-foss4g/tuning.rst
r1 r31 1 1 .. _tuning: 2 2 3 Section 21: Tuning PostgreSQL for Spatial4 ========================================= 3 Partie 21 : paramétrer PostgreSQK pour le spatial 4 ================================================= 5 5 6 PostgreSQL is a very versatile database system, capable of running efficiently in very low-resource environments and environments shared with a variety of other applications. In order to ensure it will run properly for many different environments, the default configuration is very conservative and not terribly appropriate for a high-performance production database. Add the fact that geospatial databases have different usage patterns, and the data tend to consist of fewer, much larger records than non-geospatial databases, and you can see that the default configuration will not be totally appropriate for our purposes.6 PostgreSQL est une base de données trÚs versatile, capable de tourner dans des environnements ayant des ressources trÚs limités et partageant ces ressources avec un grand nombre d'autres applications. Afin d'assurer qu'il tournera convenablement dans ces environnements, la configuration par défaut est trÚs peu consomatrice de ressource mais terriblement innadapaté pour des bases de données hautes-performances en production. Ajoutez à cela le fait que les base de données spatiales ont différent type d'utilisation, et que les données sont généralement plus grandes que les autres types de données, vous en arriverez à la conclusion que les parÚtres par défaut ne sont pas approprié pour notre utilisasion. 7 7 8 All of these configuration parameters can edited in the database configuration file, :file:`C:\\Documents and Settings\\%USER\\.opengeo\\pgdata\\%USER`. This is a regular text file and can be edited using Notepad or any other text editor. The changes will not take effect until the server is restarted.8 Tout ces paramÚtres de configuration peuvent être édité dans le fichier de configuration de la base de données : :file:`C:\\Documents and Settings\\%USER\\.opengeo\\pgdata\\%USER`. Le contenu du fichier est du texte et il peut donc être ouvert avec l'outils d'édition de fichiers de votre choix (Notepad par exemple). Les modifications apportées à ce fichier ne seront effectives que lors du redémarrage du serveur. 9 9 10 10 .. image:: ./tuning/conf01.png 11 11 12 An easier way of editing this configuration is by using the built-in "Backend Configuration Editor". In pgAdmin, go to *File > Open postgresql.conf...*. It will ask for the location of the file, and navigate to:file:`C:\\Documents and Settings\\%USER\\.opengeo\\pgdata\\%USER`.12 Une façon simple d'éditer ce fichier de configuration est d'utiliser l'outils nommé : "Backend Configuration Editor". Depuis pgAdmin, allez dans *File > Open postgresql.conf...*. Il vous sera demandé le chemin du fichier, naviguez dans votre arborescence jusqu'au fichier :file:`C:\\Documents and Settings\\%USER\\.opengeo\\pgdata\\%USER`. 13 13 14 14 .. image:: ./tuning/conf02.png … … 16 16 .. image:: ./tuning/conf03.png 17 17 18 This section describes some of the configuration parameters that should be adjusted for a production-ready geospatial database. For each section, find the appropriate item in the list, double-click on the line to edit the configuration. Change the *Value* to the recommended value as described, make sure the item is *Enabled*, the click**OK**.18 Cette partie décrit certains des paramÚtres de configuration qui doivent être modifiés pour la mise ne place d'une base de données spatiale en production. Pour chaque partie, trouvez le bon paramÚtres dans la liste et double cliquez dessus pour l'éditer. Changez le champs *Value* par la valeur que nous recommendons, assurez-vous que le champs est bien activé pui cliquez sur **OK**. 19 19 20 .. note:: These values are recommendations only; each environment will differ and testing is required to determine the optimal configuration. But this section should get you off to a good start.20 .. note:: Ces valeurs sont seulement celles que nous recommendons, chaque environnement differera et tester les différents paramétrages est toujours nécessaire pour s'assurer d'utiliser la configuration optimale. Mais dans cette partie nous vous fournissons un bon point de départ. 21 21 22 22 shared_buffers 23 23 -------------- 24 24 25 Sets the amount of memory the database server uses for shared memory buffers. These are shared amongst the back-end processes, as the name suggests. The default values are typically woefully inadequate for production databases.25 Alloue la quantité de mémoire que le serveur de bases de données utilise pour ses segments de mémoires partagées. Cela est partagé par tout les processus serveur, comme sont nom l'indique. La valeur par défaut est affligeante et inadaptée pour une base de données en production. 26 26 27 * Default value*: typically32MB27 *Valeur par défaut* : typiquement 32MB 28 28 29 * Recommended value*: 75% of database memory(500MB)29 *Valeur recommandée* : 75% de la mémoire de la base de données (500MB) 30 30 31 31 .. image:: ./tuning/conf04.png … … 34 34 -------- 35 35 36 D efines the amount of memory that internal sorting operations and hash tables can consume before the database switches to on-disk files. This value defines the available memory for each operation; complex queries may have several sort or hash operations running in parallel, and each connected session may be executing a query.36 Définit la quantité de mémoire que les opération interne d'ordonnancement et les tables de hachages peuvent consommer avec le serveur passe à des fichiers sur le disque. Cette valeur définit la mémoire disponible pour chaque opération complexe, les requêtes complexes peuvent avoir plusieurs ordres ou opération de hachage tournant en parallÚle, et chaque client s connecté peut exécuter une requête. 37 37 38 As such you must consider how many connections and the complexity of expected queries before increasing this value. The benefit to increasing is that the processing of more of these operations, including ORDER BY, and DISTINCT clauses, merge and hash joins, hash-based aggregation and hash-based processing of subqueries, can be accomplished without incurring disk writes.38 Vous devez donc considérer combient de connexions et quel complexité est attendu dans les requêtes avant d'augmenter cette valeur. Le bénéfice acquis par l'augmentation de cette valeur est que la plupart des opération de classification,dont les clause ORDER BY et DISTINCT, les jointures, les agrégation basé sur les hachages et l'exécution de requête imbriquées, pourront être réalisé sans avoir à passer par un stockage sur disque. 39 39 40 * Default value*: 1MB40 *Valeur par défaut* : 1MB 41 41 42 * Recommended value*: 16MB42 *Valeur recommandée* : 16MB 43 43 44 44 .. image:: ./tuning/conf05.png … … 47 47 -------------------- 48 48 49 D efines the amount of memory used for maintenance operations, including vacuuming, index and foreign key creation. As these operations are not terribly common, the default value may be acceptable. This parameter can alternately be increased for a single session before the execution of a number of :command:`CREATE INDEX` or :command:`VACUUM` calls as shown below.49 Définit la quantité de mémoire utilisé pour les opération de maintenances, dont le néttoyage (VACUUM), les indexes et la création de clef étrangÚres. Comme ces opération sont courremment utilisées, la valeur par défaut devrait être acceptable. Ce paramÚtre peut être augmenté dynamiquement à l'exécution depuis une connexion au serveur avant l'exécution d'un grand nombre d'appels à :command:`CREATE INDEX` ou :command:`VACUUM` comme le montre la commande suivante. 50 50 51 51 .. code-block:: sql … … 55 55 SET maintenance_work_mem TO '16MB'; 56 56 57 * Default value*: 16MB57 *Valeur par défaut* : 16MB 58 58 59 * Recommended value*: 128MB59 *Valeur recommendée* : 128MB 60 60 61 61 .. image:: ./tuning/conf06.png … … 64 64 ----------- 65 65 66 Sets the amount of memory used for write-ahead log (WAL) data. Write-ahead logs provide a high-performance mechanism for insuring data-integrity. During each change command, the effects of the changes are written first to the WAL files and flushed to disk. Only once the WAL files have been flushed will the changes be written to the data files themselves. This allows the data files to be written to disk in an optimal and asynchronous manner while ensuring that, in the event of a crash, all data changes can be recovered from the WAL.66 Définit la quantité de mémoire utilisé pour l'écriture des données dans le journal respectant la rÚgle du défaire (WAL). Elle indique que les informations pour annuler les effets d'une opération sur un objet doivent être écrites dans le journal en mémoire stable avant que l'objet modifié ne migre sur le disque. Cette rÚgle permet d'assurer l'intégrité des données lors d'une reprise aprÚs défaillance. En effet,il suffiré de lire le journal pour retrouver l'état de la base lors de sont arrêt brutal. 67 67 68 The size of this buffer only needs to be large enough to hold WAL data for a single typical transaction. While the default value is often sufficient for most data, geospatial data tends to be much larger. Therefore, it is recommended to increase the size of this parameter.68 La taille de ce tampon nécessite simplement d'être suffisament grand pour stoquer les données WAL pour une seule transaction. Alors que la valeur par défaut est généralement siffisante, les données spatiales tendent à être plus large. Il est donc recommendé d'augmenter la taille spécifiée dans ce paramÚtre. 69 69 70 * Default value*: 64kB70 *Valeur par défaut* : 64kB 71 71 72 * Recommended value*: 1MB72 *Valeur recommendée* : 1MB 73 73 74 74 .. image:: ./tuning/conf07.png … … 77 77 ------------------- 78 78 79 This value sets the maximum number of log file segments (typically 16MB) that can be filled between automatic WAL checkpoints. A WAL checkpoint is a point in the sequence of WAL transactions at which it is guaranteed that the data files have been updated with all information before the checkpoint. At this time all dirty data pages are flushed to disk and a checkpoint record is written to the log file. This allows the crash recovery process to find the latest checkpoint record and apply all following log segments to complete the data recovery.79 Cette valeur définit le nombre maximum de segements des journaux (typiquement 16MB) qui doit être remplit entre chaque point de reprises WAL. Un point de reprise WAL est une partie d'une séquence de transactions pour lequel on garanti que les fichiers de données ont été mis à jour avec toutes les requêtes précédent ce point. à ce moment-là toutes les pages sont punaisées sur le disque et les point de reprises sont écrit dans le fichier de journal. Cela permet au precessus de reprise aprÚs défaillance de trouver les dernierspoints de reprises et applique toute les lignes suivantes pour récupérer l'état des données avant la défaillance. 80 80 81 Because the checkpoint process requires the flushing of all dirty data pages to disk, it creates a significant I/O load. The same argument from above applies; geospatial data is large enough to unbalance non-geospatial optimizations. Increasing this value will prevent excessive checkpoints, though it may cause the server to restart more slowly in the event of a crash.81 Ãtant donnée que les point de reprises nécessitent un punaisage de toutes le pages ayant été modifiée sur le disques, cela va créer une charge d'entrées/sorties significative. Le même arguement que précédemment s'applique ici, les données spatiales sont assez grandes pour contrebalancer l'optimisation de données non spatiales. Augmenter cette valeur limitera le nombre de points de reprise, mais impliquera un plus redémarrage en cas de défaillance. 82 82 83 * Default value*: 383 *Valeur par défaut* : 3 84 84 85 * Recommended value*: 685 *Valauer recommendée* : 6 86 86 87 87 .. image:: ./tuning/conf08.png … … 90 90 ---------------- 91 91 92 This is a unit-less value that represents the cost of a random page access from disk. This value is relative to a number of other cost parameters including sequential page access, and cpu operation costs. While there is no magic bullet for this value, the default is generally conservative. This value can be set on a per-session basis using the ``SET random_page_cost TO 2.0`` command.92 Cette valeur sans unité représente le coût d'accÚs alléatoire au page du disque. Cete valeur est relative au autres paramÚtres de coût notemment l'accÚs séquentiel au pages, et le coût des opération processeur. Bien qu'il n'y ai pas de valeur magique ici, la valeur par défaut est généralement trop faible. Cette valeur peut être affectée dynamiquement par session en utilisant la commande ``SET random_page_cost TO 2.0``. 93 93 94 * Default value*: 4.094 *Valeur par défaut* : 4.0 95 95 96 * Recommended value*: 2.096 *Valeur recommandée* : 2.0 97 97 98 98 .. image:: ./tuning/conf09.png … … 101 101 ------------- 102 102 103 This is the parameter that controls the cost of a sequential page access. This value does not generally require adjustment but the difference between this value and ``random_page_cost`` greatly affects the choices made by the query planner. This value can also be set on a per-session basis.103 C'est une paramÚtre qui controle le coût des accÚs séquentiel au pages. Il n'est généralement pas nécessaire de modifier cette valeur maus la différence entre cette valeur et la valeurs ``random_page_cost`` affecte drastiquement le choix fait par le plannificateur de requêtes. Cette valeur peut aussi être affectée depuis une session. 104 104 105 * Default value*: 1.0105 *Valeur par défaut* : 1.0 106 106 107 * Recommended value*: 1.0107 *Valeur recommandée* : 1.0 108 108 109 109 .. image:: ./tuning/conf10.png 110 110 111 Re loadconfiguration112 -------------------- 111 Recharger la configuration 112 -------------------------- 113 113 114 A fter these changes are made, save changes and reload the configuration.114 AprÚs avoir réalisé ces changements mentioné dans cette partie sauvez-les puis rechargez la configuration. 115 115 116 * This is done by right-clicking on the server (``PostgreSQL 8.4 on localhost:54321``) in pgAdmin, selecting to*Disconnect*.117 * Cli cking *Shutdown* in the OpenGeo Dashboard, then clicking*Start*.118 * Finally reconnecting to the server in pgAdmin (right-click on the server and select*Connect*).116 * Ceci se fait en cliquant avec le bouton droit sur le nom du serveur (``PostgreSQL 8.4 on localhost:54321``) depuis pgAdmin, selectionnez *Disconnect*. 117 * Cliquez sur le bouton *Shutdown* depuis le Dashboard OpenGeo, puis cliquez sur *Start*. 118 * Pour finir reconnectez-vous au serveur depuis pgAdmin (cliquez avec le bouton droit sur le serveur puis sélectionnez *Connect*). 119 119 120 120
Note: See TracChangeset
for help on using the changeset viewer.