3

У меня есть VPS с 9 ГБ оперативной памяти, 300 ГБ HDD, 3 ГБ подкачки, 7 ядер. ОС CentOS 5.7 Final.

У меня на компьютере запущен postgres9.0 с правильной настройкой (по крайней мере, из книги / вики PostgreSQL).

В большинстве случаев происходит, когда выполняется какой-то сложный запрос (под сложным, я имею в виду, выберите максимум с 3-мя объединениями), хотя ~ 75% моей оперативной памяти не используется, происходит обмен ~ 99%.

РЕДАКТИРОВАТЬ: свободная оперативная память, о которой я здесь говорю, рассчитывается по формуле (free + buffered + cached). Фактически свободная оперативная память, показанная 'free -m', едва ли составляет ~ 2%. Так что поправьте меня, если я здесь не прав.

Кроме того, это приводит к тому, что мой дисковый ввод-вывод искажается до 100% и замедляет все остальное. (Я склонен полагать, что что-то не так с моим диском.)

Я не понимаю причину такого большого количества обмена. Это из-за переключения контекста ?? Большую часть времени мои процессоры простаивают, а время ожидания ввода-вывода увеличивается до 30% во время выбора.

Был бы признателен, если некоторые могут пролить свет на это.

Благодарю.

2 ответа2

5

Ядро Linux решает поместить страницы памяти в раздел подкачки, когда они используются не слишком часто, даже если у него есть доступная память. Вы можете настроить это поведение, настроив «перестановку» диспетчера памяти, выполнив

$ echo 50 > /proc/sys/vm/swappiness

где 50 - это значение между 0 (поменяйте местами как можно меньше) и 100 (поменяйте местами сколько хотите).

Смотрите также Wikipedia: swappiness, чтобы узнать больше об этом.

0

Возможно, вы ищете правильное значение, но на тот случай, если это не так, и для тех, кто смотрит не на ту цифру.

$ free -mt
             total       used       free     shared    buffers     cached
Mem:          2027       1953         73          0         66       1501
-/+ buffers/cache:        385       1641 <---- this value is actually free
Swap:         4086          0       4086
Total:        6113       1954       4159

Это из нашей системы управления запасами /erp головного офиса для 40 сотрудников головного офиса и координации 9 спутниковых систем запаса /erp, 80% (1641 МБ) нашего оперативного памяти считается бесплатным, но вместо того, чтобы тратить его впустую, он делает что-то полезное и действует как буферы / кэш.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .