2 votes

Postgresql calcule la mémoire partagée du noyau ?

Nous sommes en train d'exécuter PGSQL 9.2 et voici les spécifications du matériel

OS: CentOS7 64bit
CPU: 24
Memory: 32GB
Disk: SSD

Je veux calculer les valeurs de shmmax/shmall alors quelle serait la bonne méthode ? Je l'ai cherché sur Google et les gens disent 50% de la mémoire totale. Mais sur mon ordinateur, je n'ai que PGSQL en cours d'exécution, alors pourquoi pas 80% de la mémoire totale ?

Puis-je configurer kernel.shmmax 28GB ? et garder 4G pour le système d'exploitation Linux.

Que suggérez-vous ?

0 votes

Vous n'auriez pas la possibilité de mettre en cache les fichiers liés à la base de données dans la mémoire. La mémoire est plus rapide que le disque ! Linux aura besoin d'un peu de mémoire pour effectuer cette mise en cache en

0 votes

4G devrait suffire, n'est-ce pas ?

0 votes

Quelle est la taille totale de la base de données ?

0voto

Kassandry Points 619

shmmax y shmall ne sont pas des allocations, ce sont des boutons de contrôle dans le noyau qui vous permettent de contrôler la taille maximale du segment de mémoire partagée et le nombre de pages de mémoire partagée.

Citant le documentation sysctl :

shmall:

This parameter sets the total amount of shared memory pages that
can be used system wide. Hence, SHMALL should always be at least
ceil(shmmax/PAGE_SIZE).

If you are not sure what the default PAGE_SIZE is on your Linux
system, you can run the following command:

# getconf PAGE_SIZE

==============================================================

shmmax:

This value can be used to query and set the run time limit
on the maximum shared memory segment size that can be created.
Shared memory segments up to 1Gb are now supported in the
kernel.  This value defaults to SHMMAX

Je vous recommande de suivre les suggestions qui vous ont été données sur les paramètres de ces variables sysctl, car elles sont essentielles pour pouvoir régler PostgreSQL, et les recommandations sont souvent plus que suffisantes pour les tâches nécessaires. =)

Une fois que ces sysctls sont définis, la définition de shared_buffers à 25 % de la RAM, et effective_cache_size à 75% dans votre postgresql.conf vous permettra de commencer à utiliser efficacement la RAM de votre serveur.

Je recommande également de suivre l'entrée du Wiki PostgreSQL sur Optimisation de votre serveur PostgreSQL Vous pouvez également vous procurer le livre PostgreSQL 9.0 High Performance de Greg Smith pour plus d'informations sur le réglage et l'entretien de votre serveur. =)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X