4

Короче вопрос:

Я пытаюсь использовать ноутбук Itronix GD8000 с 4 ГБ ОЗУ 8 ГБ, выделенного для гостевой ОС Mint 17.2 под хостом Windows 10, для среды разработки с открытым исходным кодом Django, но производительность на этом типе установки кажется вялой. Что - если что - что я могу сделать, чтобы выжать немного больше производительности из этой установки, чтобы я мог лучше использовать ее в качестве повседневной среды разработки.

Более длинный вопрос:

После того, как я установил и установил все для ноутбука Itronix GD8000 с 4G оперативной памяти 8G, выделенной для гостевой ОС Mint 17.2 под хостом Windows 10, я приступил к работе и медленно осознал, насколько моя замечательная среда разработки застряла. , Это было достаточно сильно, чтобы отвлечь меня от ожидания разработки программного обеспечения с открытым исходным кодом на заднем крыльце, благодаря использованию ноутбука, до того, чтобы оставаться внутри на моем настольном компьютере Mac.

Я пытался внести незначительные изменения в свой JSX- источник для приложения Django, и я пропускал мультисекундные задержки при переключении окон, а также заставлял Vim регистрировать нажатия клавиш, и казалось, что загрузка веб-страниц действительно очень долгое время (обслуживается сервером разработки Django). Даже принимая во внимание, что жесткий диск старый и очень медленный, я не понимаю, почему нужно 5+ секунд, чтобы alt+ tab.

Теперь, если проблема заключается в виртуализации, я могу немного приблизиться к Windows, запустив Cygwin; Я также не знаю, есть ли проблемы с VMware Player и Workstation. Но я долго пытался перейти с MacBook Pro на Itronix GD8000, где производительность была на порядок ниже, чем должна быть. Я обычно рассматривал бы возможность того, что он постоянно менялся, но не было особенно сильного шума жесткого диска, то, что я делал, не должно было требовать каких-либо ресурсов, а некоторых старых вещей, которые я помню для обмена, там не было.

Несколько лет назад на компьютере Debian, когда я перешагнул порог для замены диска и переключился в рабочую область, в которой я находился на обменной территории, появляющееся или исчезающее окно было медленно окрашено или неокрашено относительно фона, полос за полосой, появляясь или исчезая. Это было так же медленно, как и обмен, но любой эффект был внезапным после его задержки. Это включало переключение между окнами, загрузку нового окна браузера, получение ответа от редактора в терминале окна терминала и так далее.

Итак, все, что говорит, что я могу сделать - в программном или аппаратном обеспечении - чтобы мой Itronix GD8000 продемонстрировал нормальное поведение производительности в ответ на действия по разработке, которые не должны быть особенно требовательными?

  • Есть ли какая-то настройка программного обеспечения, которую я должен сделать?
  • Должен ли я поменять гостя и хоста?
  • Есть ли способы попросить Windows 10 и Linux Mint 17.2 быть более экономными в использовании ресурсов?
  • Должен ли я попробовать что-то, о чем я еще не подумал?

Я уверен, что что-то улучшилось бы в моей производительности, если бы я выложил 1000 долларов за SSD на 256 ГБ, но это в финансовом плане.

3 ответа3

12

Короткий ответ

Это ваш графический процессор. Я знаю, что это звучит как смелое утверждение, но для меня это совершенно очевидно, когда-то сталкивался с подобными проблемами в подобных древних системах. Вы не можете обновить графический процессор, поэтому вам нужно будет "понизить" программное обеспечение, чтобы оно не использовало такие графически интенсивные методы для рендеринга рабочего стола, как на стороне Windows (хост), так и на Linux (гостевой). ) боковая сторона. Точные методы для этого стоят целых вопросов сами по себе, но я предлагаю вам начать с Googling "отключить dwm Windows 10" и "отключить композитинг Linux Mint".


Длинный ответ

терминология

  • GPU: графический процессор. По сути, это специальная интегральная схема, конструкция которой такова, что она оптимизирована для выполнения эффективных операций с графическими данными. Количество транзисторов и мощность, необходимая для выполнения большинства графических вычислений, меньше для графического процессора, чем для центрального процессора (ЦП), из-за смущающе параллельного проектирования графических данных, что отражается в проектировании графических процессоров благодаря наличию множества чрезвычайно простых процессорные ядра. Ваш ЦП может иметь 2 или 4 ядра, но графический процессор может иметь тысячи гораздо более простых и менее способных ядер, которые могут выполнять одну и ту же математику одновременно с большим количеством данных за чрезвычайно короткое время. Эта конструкция отличается от ЦП, поскольку ЦП предназначен для выполнения множества различных типов операций (не обязательно всех одинаковых операций) над различными данными.

  • IGP: интегрированный графический процессор. Иногда сокращенно iGPU. Современные IGP встроены непосредственно в пакет процессора, а иногда и в сам процессор. Старые встроены в материнскую плату и тесно взаимодействуют с процессором. IGP медленнее, чем dGPU аналогичного поколения, но они могут быть весьма полезны для запуска большинства современных программ, за исключением игр. Только недавно iGPU самого высокого уровня начали поддерживать выделенную видеопамять (VRAM), но даже они зависят главным образом от системной памяти для хранения данных. Более старые или более дешевые iGPU зависят исключительно от системной памяти.

  • dGPU: блок обработки дискретной графики. Они отличаются от IGP, потому что они имеют свои собственные выделенные линии PCI Express и никогда не встроены в ЦП. Иногда они могут быть припаяны к материнской плате, но во всех случаях dGPU также имеет выделенную VRAM, которая легко доступна, что намного быстрее, чем зависимость GPU от системной памяти, как это делает iGPU.

  • OpenGL: графический интерфейс прикладного программирования (API), который со временем эволюционировал для поддержки новых возможностей графических процессоров, так как они очень быстро совершенствовались в течение многих лет. Это все, что вам нужно знать об этом. В общих чертах, основные версии OpenGL 1, 2, 3 и 4 в общих чертах очерчивают различные "промышленные поколения" прогрессивно развивающихся графических процессоров, которые изначально были "фиксированными" устройствами, которые могли выполнять только очень специфические операции, и сейчас (в эпоху OpenGL 4.x) полностью программируемый и способный к вычислениям общего назначения (GPGPU).

  • WDDM: модель драйвера дисплея Windows. Низкоуровневый графический API и каркас драйвера устройства от Microsoft, который формирует низкий уровень абстрагирования интерфейса и оборудования между графическим оборудованием и операционной системой Windows (в том числе в гостевых системах VMware, если гость работает под управлением Windows). Чрезвычайно старые графические процессоры считаются «pre-WDDM», потому что их оборудование не поддерживает основные требования Windows для запуска драйвера устройства WDDM 1.0 с этим оборудованием. Старые графические процессоры поддерживают WDDM 1.0, 1.1 или 1.2, в зависимости от того, сколько им лет, в то время как последние графические процессоры в Windows 10 поддерживают WDDM 2.0. Новые версии WDDM обеспечивают лучшую производительность по всем направлениям, лучшее планирование задач (совместное использование ресурсов графического процессора между процессами) и более низкое энергопотребление.

  • vmwgfx: графическая архитектура, доступная VMware в их продуктах Player и Workstation (по крайней мере, за последние несколько выпусков), которая предоставляет возможности вашего физического графического процессора гостевой операционной системе через Direct Rendering Manager (DRM) и OpenGL (в Linux). гости) или WDDM/OpenGL/Direct3D (для гостей Windows).

  • EPT: расширенные таблицы страниц. Добавление набора команд к процессорам Intel, начиная с микроархитектуры Nehalem , которая следует сразу за микроархитектурой "Core", которую использует ваш процессор "Core 2 Duo". Вы можете узнать детали Nehalem с такими именами, как "Core i7 920" и аналогичными. EPT повышает производительность виртуальной машины по всем направлениям на 50% - 100% (примерно) по сравнению с работой без нее. VMware полностью использует EPT, если он доступен, но в противном случае прибегает к более медленному способу управления памятью.

  • Компоновщик оконного менеджера: также известен как композитор. Общий термин, относящийся к компоненту современных настольных сред, использующему стек трехмерной графики (который, как мы надеемся, опирается на аппаратное обеспечение для трехмерной графики, такое как современный графический процессор) для выполнения базового рендеринга графического интерфейса настольного компьютера и всего, что на нем. , Составление оконных менеджеров существует с середины 2000-х годов, но они стали стандартными (и иногда всегда включаются, даже если драйверы аппаратного обеспечения графического процессора не могут быть инициализированы, эмулируя рендеринг (медленно) в программном обеспечении) где-то в 2011 году, дать или взять несколько лет в зависимости от ОС. Современные рабочие столы GNU/Linux, такие как GNOME Shell, всегда делают композитинг, даже если он находится на CPU (также известный как "в программном обеспечении"), чтобы отличать его от «в (GPU) аппаратном обеспечении».) В отличие от этого, операционные системы, такие как Red Hat Enterprise Linux 5.x и Windows XP, не использовали менеджер окон компоновки по умолчанию.

Сырые числа - это медленно, Джим!

Во-первых, нажмите здесь, чтобы сравнить свой графический чипсет, который по-разному известен как "945GM", "GM945" или "4500MHD", с выделенным графическим процессором Intel IGP и Nvidia последнего поколения среднего класса. Посмотрите на цифры для теста G3D, а затем дайте этому немного подождать. 4500MHD имеет оценку 5. Пять Сравните это с Intel HD 5500, у которого оценка в 100 раз выше. А HD 5500, по сегодняшним меркам, довольно слабый графический процессор.

Ваше оборудование и что оно не может сделать

(основываясь на том, что я мог почерпнуть из ссылки на обзор, который вы мне показали)

  • Ваш процессор - Core 2 Duo. Это означает, что следующие утверждения верны:
    • Ваш процессор не поддерживает EPT.
    • Поскольку вы работаете с Core 2 Duo, это означает, что ваша материнская плата может использовать только те процессоры с сокетами, которые были до поколений процессоров Nehalem. Эти ЦП по-прежнему разумны по производительности ЦП для простых задач разработки, как вы описали, но они определенно не разумны с точки зрения возможностей их графики. Но вы не можете перейти на более новый IGP, потому что вы не можете вставить новый процессор. Вы можете попробовать заменить материнскую плату на плату более нового поколения, но вряд ли она поместится внутри корпуса и будет корректно отображаться на всех портах, подключаться к дисплею, клавиатуре и т.д. В принципе, это не стоит усилий и будет быть очень дорогим, даже если вы сняли его.
  • Ваш графический чипсет представляет собой IGP под названием Intel GMA 4500MHD, который является древним и очень медленным даже для своего времени. Его едва ли можно считать 3d-ускорителем, и он медленнее для некоторых операций, чем некоторые из первых 3d-ускорителей, которые когда-либо существовали ...! Теперь IGP обычно работают медленно, но современные IGP намного, намного, намного быстрее, чем этот.
  • Вы используете Windows 10 (современная ОС) с Mint 17.2 (еще одна современная ОС) на виртуальной машине в VMware. Это означает, что следующие утверждения верны:
    • Ваша родная среда Windows 10 может поддерживать WDDM 1.0, если вам повезет. Или это может быть даже в режиме программного обеспечения! Однако стоит посмотреть, запустив dxdiag и проверив диспетчер устройств. Если у вас нет графики с аппаратным ускорением, ожидайте много боли, как на стороне Windows, так и внутри гостевой системы. Это отличается от (и на более низком уровне, чем) Direct3D, поэтому речь не идет об играх.
    • Ваша копия VMware Player/Workstation, вероятно, пытается использовать виртуальный графический драйвер vmwgfx . Однако vmwgfx хорошо работает только в том случае, если вы используете современный графический чипсет (грубо говоря, за последние 4 года или около того), который поддерживает множество последних функций OpenGL на стороне хоста. Я подозреваю, что у вас очень мало, если какая-либо поддержка OpenGL от вашего оборудования на Windows 10, и даже на более старых ОС, таких как Vista, вы, вероятно, не получите очень хорошую поддержку OpenGL, потому что этот чипсет очень старый. Может быть, OpenGL 2.1 или 3.1 в лучшем случае. Для справки, мы до OpenGL 4.5.
    • И в Windows 10, и в вашей гостевой системе Linux Mint одновременно работает какой-то композитор. Windows 10 делает это через Desktop Window Manager (dwm.exe), а Linux Mint - через менеджер композитинга (который зависит от того, как вы его установили и какой менеджер рабочего стола вы используете). Это прекрасно работает на современном, способном графическом процессоре, но, скорее всего, убьет ваш графический процессор с точки зрения требований, предъявляемых к оборудованию. ИЛИ, в качестве альтернативы (и я не уверен, какой случай верен, потому что я не могу видеть внутри вашего компьютера, и потребовалось бы много взад и вперед, чтобы сказать вам, чтобы запускать команды, чтобы я мог выяснить), ваш Linux Mint install может вообще не использовать аппаратное ускорение, и фактически выполняет команды графического рисования, которые обычно должны быть аппаратно ускорены (через менеджер компоновки) в программном обеспечении на процессоре. Теперь, если бы ваш процессор был Core i7 4790K текущего поколения или аналогичным, у него, вероятно, было бы достаточно мощности, чтобы просто "перебрать" эти графические операции, и вы бы едва заметили, даже если бы они работали полностью в программном обеспечении. Но в вашем случае для запуска композитора в программном обеспечении потребуется именно такая 5-секундная задержка, которую вы испытываете.

Вы не можете активно воспринимать или осознавать это, но Windows 10 и Linux Mint из коробки, если вы не настроите их по-разному, применяют очень тонкие и не всегда заметные графические эффекты, когда вы выполняете даже самые простые операции. Например, текст сглаживается; на границах окна есть тени; Существуют анимации с аппаратным ускорением (или должны быть с аппаратным ускорением) для минимизации, максимизации и восстановления окон и alt-tabbing; и так далее и тому подобное. Эти графические операции на самом деле требуют большого количества вычислений для точного выполнения, и они могут быть эффективно выполнены только на современном графическом процессоре.

Intel GMA 4500MHD не является современным графическим процессором, и он был очень, очень бюджетным даже в тот день, когда был выпущен на рынок.

Если у вас нет внутренних слотов расширения, таких как слот PCIe, в которые вы могли бы установить дискретный графический процессор (и я был бы удивлен, если бы это было так), вы не получите более быстрый или более новый графический чипсет на этом ноутбуке, и вам просто придется смириться с этим фактом.

Так что же делать вместо этого? Ну просто

Не запускайте среды рабочего стола, для которых требуется доступ к современному передовому графическому чипсету с аппаратным ускорением для хорошей производительности. По сути, прекратите использовать рабочие столы, на которых работает композитор, или выясните, как отключить композитор (ы).

В частности:

  • На стороне хоста посмотрите, есть ли способ отключить диспетчер окон рабочего стола в Windows 10. Я знаю, что это было возможно до Windows 7, но я не знаю, поддерживается ли это больше в Windows 8 или более поздней версии.
  • На гостевой стороне установите среду рабочего стола, такую как Mate (разветвление Gnome 2, которая может нормально работать без композитора) или LXDE, и убедитесь, что 3d-ускоренное композитирование отключено. Метод отключения композитинга будет зависеть от DE, поэтому вам придется его погуглить. Это будет зависеть от того, какой оконный менеджер вы используете, и зависит ли оконный менеджер от отдельного менеджера композитинга (например, compiz) или от собственного компоновки (например, KDE plasma или GNOME Shell). GNOME 3 и Cinnamon оба поставляются из коробки с менеджером компоновки, и даже если у вас вообще нет поддержки 3D-графики в гостевой системе, он откатится на рендерер OpenGL с процессором без какого-либо аппаратного ускорения. ,

Также возможно, что вы даже не используете vmwgfx в гостевой системе, потому что она не установлена, и в этом случае просто скомпилируйте ее и включите в графический стек (mesa, Xorg DDX и др.), Что может повысить производительность, разрешая композитирование оконный менеджер для подключения к графическому оборудованию через VMware. Опять же, чтобы определить это, мне нужно более внимательно изучить вашу конфигурацию. Тем не менее, я считаю (и кто-то может поправить меня в этом, если я ошибаюсь), что Linux Mint должен поставлять полностью открытый исходный код vmwgfx как часть своего графического стека с открытым исходным кодом, что означает, что если ваш гипервизор VMware может включить 3D-ускорение из на стороне хоста (имеется в виду: поддерживаемый графический процессор, поддерживаемый 3d-стек на стороне хоста и т. д.), тогда в гостевой системе будет включен vmwgfx.

Но, с моим опытом использования vwmgfx в аналогичной конфигурации на VMware Workstation 12 Pro (последняя версия VMware Workstation) на процессоре Sandy Bridge (который на два поколения новее того, что у вас есть, и поддерживает Расширенные таблицы страниц и намного больше мощный IGP), я могу вам сказать, что даже если vmwgfx полностью функционален и включен, он все еще довольно медленный на IGP по сравнению с "нативной" производительностью. Быстрее 5 секунд ожидания alt-tab, но все же заметно медленнее, чем работа напрямую на хосте.

Описание: Ваше оборудование устарело, в частности графический процессор, который представляет собой Intel IGP примерно с 2007 года. Windows 10 и Linux Mint 17.2 являются современными операционными системами, чьи настольные среды, из коробки, предполагают гораздо более мощный графический процессор (с точки зрения набора функций и производительности), чем на вашем компьютере. Происходит одно из двух: либо он пытается использовать ваш IGP и он слишком медленный, либо он даже не может пытаться использовать ваш IGP, потому что его набор функций отсутствует (или из-за плохой конфигурации программного обеспечения), поэтому он падает верните все эти тяжелые задачи рендеринга в процессор, что крайне медленно.

Если вы не используете более старую рабочую среду, которая не зависит от современных возможностей 3D-рендеринга, как на хосте, так и на гостевой стороне, вы не получите приемлемой производительности. И основным виновником является графический чип, а не процессор, оперативная память или диск. 8 ГБ ОЗУ на самом деле более чем достаточно, и выделение 4 ГБ для гостя - это здорово. Если бы у вас было столько ОЗУ и современный IGP от 2011 года или новее, у вас был бы отличный опыт.

Если все эти разговоры о IGP и vmwgfx смущают вас, просто запомните эту старую поговорку: старое оборудование лучше всего работает на старом программном обеспечении.Если вы не можете избежать использования старого оборудования, то лучше использовать на нем старое программное обеспечение. Это более справедливо для графических процессоров, чем вы можете себе представить, поскольку производительность графических процессоров за последние десять и более лет увеличилась примерно вдвое по сравнению с прошлым годом (в некоторые годы она росла еще быстрее, хотя в последние 2-3 года она несколько замедлялась),

Конечно, вам не нужно буквально устанавливать Windows XP и 8-летний дистрибутив Linux в VMware, чтобы получить приемлемую производительность. В разумно современных ОС должно быть возможно просто сказать ей отключить все ускоренные графические "эффекты" и композитинг, что значительно улучшит производительность на старом GPU.

1

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

В клиенте vm есть некоторые преимущества, но ваши первоначальные усилия должны быть сосредоточены на хосте.

В общем, вы хотели бы понять, какие ресурсы ограничены. Под Linux вы можете использовать top, iotop, vmstat, чтобы дать вам указание. Хотя я понимаю, что вы подозреваете иначе, я все еще подозреваю, что вы столкнулись с проблемой обмена - в этом случае это вопрос исправления этой проблемы - вы можете сделать это, сделав хост более скромным в использовании или изменив перестановку в виртуальный хост Linux.

Еще одна вещь, которую следует учитывать, - эта система древняя. Согласно вашей ссылке, спецификации этой машины показывают, что процессор от 2008 года - с этого момента многое изменилось.

0

Нет, это не графический процессор - он достаточно силен, чтобы рисовать окружение рабочего стола и даже запускать некоторые старые игры. Понятно, что виновником является тот факт, что вы используете виртуализацию.

Вам нужно будет либо перенести веб-разработку Django в Windows (и это не особенно сложно), либо просто установить облегченный дистрибутив Linux, такой как Lubuntu или Arch Linux с LXDE.

Тогда ваши проблемы в основном исчезнут.

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