
Ich habe gerade gelesen, dass eine falsche Konfiguration von innodb_buffer_pool_size zu Paging auf Betriebssystemebene führen kann. Weiß jemand, wie das passieren kann und wie man das verhindern kann? Derzeit verwende ich CentOS 4 und MySQL 5.0.41
Antwort1
OrtMemlock-Optionin my.cnf. In CentOS5 verhinderte SELinux das Sperren des mysqld-Prozesses im Speicher und ich musste mein eigenes Modul erstellen, um dies zu ermöglichen.
Eine weitere Möglichkeit ist die VerwendungGroße Seiten, das immer im Speicher verbleibt. Sie müssen daran denken, ulimit -l unlimited
in Ihrem mysqld-Startskript Folgendes zu platzieren:
Antwort2
Einfach ausgedrückt: Um Paging zu vermeiden, müssen Sie die Puffergröße klein genug halten, damit sie vollständig in den Speicher passt, zusammen mit allem anderen, wofür das Betriebssystem den Speicher verwendet. Wenn der Gesamtspeicherbedarf größer wird als der physische Speicher, wird er ausgelagert. Wenn Sie keinen Swap-Speicher haben, muss etwas kaputt gehen.
Antwort3
Wenn Sie Swap auf Ihrem Computer aktiviert haben und Ihre Pufferpools größer sind als Ihr physischer Arbeitsspeicher, führt dies dazu, dass Daten auf die Festplatte ausgelagert werden, um Arbeitsspeicher für Ihre Pufferpools freizugeben. Verhindern Sie dies, indem Sie Swap deaktivieren oder sicherstellen, dass MySQL nie genug physischen Arbeitsspeicher verbraucht, um ausgelagert zu werden.