Ubuntu 12.10 и VMware Workstation 9: кэширование ОЗУ приводит к серьезным падениям производительности

Я прочитал много потоков в кешировании памяти, и стандартный ответ «большой кеш хорош, он не должен влиять на производительность», «ядро знает лучше».

Недавно я обновился от С 12.04 по 12.10 и изменился с VirtualBox на VMware Workstation, и различия в производительности сильно (я подозреваю, что это связано с последним).

Когда я запускаю свою виртуальную машину, график мониторинга загрузки системы показывает менее 50 % использования памяти в целом. Индикатор загрузки системы показывает мне, что остальная часть моей ОЗУ используется в кэше все время.

Простой и простой это сравнение:

ПЕРЕД

[d8 ] Кэш был очень экономно использован, в основном, ни одно из моих использований в памяти не было: кэш Swappiness был 0 (из-за того, что моя память использовалась в первую очередь, а затем менялась только при необходимости). Производительность была неплохой, а логическая оперативная память была сначала использована, кеширование было минимальным , Я мог бы запускать достаточно программного обеспечения для использования моего полного 4 ГБ оперативной памяти без какой-либо деградации производительности. При необходимости использовалось пространство подкачки, которое было явно медленнее (я на жестком диске), но все еще можно было использовать, когда текущая программа была загружена в память [!d8 ]

ПЕРЕД

Кэш очень экономно использовался, в основном я не использовал кеш Swappiness - 0 (такое же поведение, как и раньше но кеш использует полную память сразу). Swappiness было 0 (из-за того, что моя память использовалась в первую очередь, а затем меняем только при необходимости)

Итак, в принципе, любые предложения о том, как взять мои производительность до того, как это было до сохранения моей текущей настройки?

Мое подозрение - это проблема VMWare, но как я вижу, что связано с использованием кеша? Разумеется, есть способ контролировать это поведение в программном обеспечении как отполированное как VMware?

Спасибо

до Также важно отметить, что поведение отличается в зависимости о том, открыта или закрыта VMware. Если VMware открыта, то барабан будет блокироваться как 50% и 50% кеш и зайти в полный замок, упомянутый выше. В противоположность этому, если VMware закрыта (после ее открытия), тогда ОЗУ будет продолжать расти, так как это необходимо / кеш останется как полная оставшаяся память, и нет заметного ухудшения производительности.

EDIT2: У меня есть поменял мою swappiness на 5, как было предложено, никаких изменений вообще (также были те же проблемы с swappiness 10 и 60 до публикации этого вопроса). При ближайшем рассмотрении, что-то действительно перепуталось. Системный монитор (и подтвержденный с помощью предложенных команд терминала - free -m именно) показывает следующее:

ben@ben-HPdv6:~$ free -m
         total       used       free     shared    buffers     cached
Mem:          3945       3827        117          0         42       2770
-/+ buffers/cache:       1014       2931
Swap:         1905          0       1905

Который говорит, что используется только ~ 1 ГБ моей ОЗУ и ~ 3 ГБ в кеше диска НО моя виртуальная машина работает и выделяется 1,5 ГБ ОЗУ. При загрузке виртуальной машины не было никакого увеличения моей используемой ОЗУ, но кеш подскочил. Системный монитор (был подтвержден с помощью free -m ) показывает, что vmware имеет правильное звучание 1,8 ГБ ОЗУ, но, очевидно, free -m показывает иначе. Результаты также указывают на то, что моя система пыталась даже открыть эту страницу хрома, чтобы опубликовать ответ (у меня есть только рабочая станция vmware и терминал открыт). Его как память не объявляется правильно, как использование RAM-памяти (в отличие от кэша), а затем ядро, очевидно, не отвечает правильно на основе этого? Как и его попытка освободить кэш-память по мере необходимости, как и предполагалось, но она не может, потому что на самом деле используется память / не кеш.

Я сейчас просто spitballing, действительно ищу какую-то помощь о том, как чтобы понять это. Любая идея вообще выяснить, что происходит? Есть ли способ подтвердить, что это проблема VMware, а не Ubuntu?

1
задан 30 December 2012 в 09:40

1 ответ

Установить swappiness в 0 не рекомендуется в производственной среде, особенно для хоста, на котором запущено несколько виртуальных машин. Я видел странные проблемы на серверах и моих собственных рабочих станциях, при этом swappiness установлен на 0, изменение его на 5 или более значение делает его нормальным снова, просто не устанавливайте его на ноль, если вы на 100% не уверены, что вы делают и следствие, обходное решение.

Я не верю в системный монитор GNOME. Обычно используйте free, vmstat или dstat.

free Доступная системная память = свободные + буферы + кэшированные или + буферы / кеш в выходе free. vmstat в основном используется для мониторинга страницы (своп). Вам нужно устранить проблему, если произойдет много страниц. dstat более продвинутый, чем vmstat

Вы пытались проверить известные проблемы VMware Workstation? Убедитесь, что вы используете последнюю версию: 9.0.1?

Управление памятью в Linux:

http://www.linuxatemyram.com/

http://www.linuxatemyram.com/

2
ответ дан 25 May 2018 в 04:00
  • 1
    Спасибо, изменили swappiness и использовали эти инструменты без результата (см. EDIT2 ). Есть ли причина, по которой swappiness = 0 является плохим или это просто глючит или что-то еще? На самом деле не удалось найти ничего, предлагая не использовать swappiness = 0, так что просто интересно. Кроме того, ссылки были отличными, помогли мне лучше понять, что может быть. благодаря – B T 26 November 2012 в 05:34
  • 2
    Просто испытайте ;-) Обычно в производственной среде люди здесь не устанавливают swappiness в 0, если у вас нет бесконечной ОЗУ, которая никогда не будет заполнена. Я видел, как ядро ​​делало глупые вещи (страница / свопинг на диск), даже если swappiness был установлен в 0, и там было доступно большое количество ОЗУ, замена данных приведет к снижению производительности и приложений. – Terry Wang 28 November 2012 в 04:29

Другие вопросы по тегам:

Похожие вопросы: