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. =)
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 ?
0 votes
Maximale, elle ira
20GB
actuellement2G