Что Виртуальная память измеряет в средней вершине?

Я полагаю, что Visual Studio для Разработчиков Базы данных имеет эту функцию. Существуют также другие сторонние продукты, которые могут синхронизировать Ваши схемы.

База данных не похожа на 'нормальный' код, который Вы храните в управлении исходным кодом - для синхронизации баз данных, Вы только заменяете строки кода, необходимо генерировать, ИЗМЕНЯЮТ (и другой) операторы.

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

Вы могли также записать SMO (API для управления SQL), чтобы написать сценарий базы данных в файл и затем добавить это к управлению исходным кодом.

Вот пример такого инструмента.

Мы используем redgate sql, выдерживают сравнение для таких задач.

Также см.: https://stackoverflow.com/questions/115369/do-you-source-control-your-databases

125
задан 16 November 2018 в 16:21
7 ответов

От вершины (1) страница справочника:

o: VIRT  --  Virtual Image (kb)
      The  total  amount  of  virtual  memory  used  by the task.  It
      includes all code, data and shared libraries  plus  pages  that
      have been swapped out.

      VIRT = SWAP + RES.

Где RES означает Резидентную память (используемая физическая память).

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

VIRT также включает страницы, которые выделялись, но не использовались для чего-либо все же. Любая страница в этом состоянии отображается на ядре Zero Page (блестящее понятие - необходимо искать его), таким образом, это обнаруживается в VIRT, но на самом деле не использует памяти.

25
ответ дан 28 November 2019 в 19:19
  • 1
    хорошо это интересно, так VIRT = ПОДКАЧКА + RES, каким образом мое использование ПОДКАЧКИ является нулем, в то время как виртуальная память для 2 процессов Java близко к 1 ГБ?? –  kapso 4 May 2010 в 21:20
  • 2
    в основном Лучшие шоу.... Подкачка: общее количество 1048568k, 0k используемый, 1048568k свободный, 505728k кэшируемый –  kapso 4 May 2010 в 21:21

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

Адресное пространство (т.е. виртуальная память в списке процессов) ничего не стоит; это не реально. То, что реально, является столбцом RSS (RES), который является резидентной памятью. Это - то, сколько из Вашей фактической памяти занимает процесс.

Но даже который не является целым ответом. Если процесс называет ветвление (), это разделяет на две части, и они оба первоначально совместно используют весь их RSS. Таким образом, даже если бы RSS был первоначально 1 ГБ, результат после того, как разветвление было бы двумя процессами, каждым с RSS 1 ГБ, но Вы будете все еще только использовать 1 ГБ памяти.

Перепутанный уже? Вот то, что действительно необходимо знать: используйте free управляйте и проверьте результаты прежде и после запуска Вашей программы (на +/- buffers/cache строка). То различие то, сколько новой памяти Ваша недавно запущенная используемая программа.

144
ответ дан 28 November 2019 в 19:19

Столбец VIRT в PS/вершине произвел, почти не важно для измерения использования памяти. Не волнуйтесь об этом. Большая нагрузка Apache VIRT по сравнению с памятью RES

https://stackoverflow.com/questions/561245/virtual-memory-usage-from-java-under-linux-too-much-memory-used

5
ответ дан 28 November 2019 в 19:19
  • 1
    Спасибо, я волновался и перепутал, потому что, в то время как использование подкачки составляло 0%, столбец виртуальной памяти очень высок. И также у меня есть только 1.7 ГБ общих 2.7 ГБ используемой физической памяти, в то время как виртуальная память высока? –  kapso 4 May 2010 в 18:56

Linux поддерживает виртуальную память, то есть, с помощью диска в качестве расширения RAM так, чтобы эффективный размер применимой памяти вырос соответственно. Ядро запишет содержание в настоящее время неиспользованного блока памяти к жесткому диску так, чтобы память могла использоваться для другой цели. Когда исходное содержание необходимо снова, они читаются назад в память. Это все сделано абсолютно очевидным для пользователя; программы, работающие в соответствии с Linux только, видят больший доступный объем памяти и не замечают, что части их время от времени находятся на диске. Конечно, чтение и запись жесткого диска медленнее (на порядке в тысячу раз медленнее), чем использование реальной памяти, таким образом, программы не работают как быстро. Часть жесткого диска, который используется в качестве виртуальной памяти, называют областью подкачки.

Linux может использовать или нормальный файл в файловой системе или отдельный раздел для области подкачки. Раздел подкачки быстрее, но легче изменить размер файла подкачки (нет никакой потребности повторно разделить целый жесткий диск и возможно установить все с нуля). Когда Вы знаете, в каком количестве области подкачки Вы нуждаетесь, необходимо пойти для раздела подкачки, но если Вы не уверены, можно использовать файл подкачки сначала, использовать систему некоторое время так, чтобы можно было получить ощущение того, в каком количестве подкачки Вы нуждаетесь и затем делаете раздел подкачки, когда Вы уверены в его размере.

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

Примечание по терминологии операционной системы: информатика обычно различает свопинг (выписывающий целый процесс к области подкачки) и подкачку страниц (пишущий только части фиксированного размера, обычно несколько килобайтов, за один раз). Подкачка страниц обычно более эффективна, и это - то, что Linux делает, но традиционные переговоры по терминологии Linux о свопинге так или иначе.

Источник: http://www.faqs.org/docs/linux_admin/x1752.html

2
ответ дан 28 November 2019 в 19:19

Я нашел это объяснение Мугурела Суманариу очень ясным:

VIRT обозначает виртуальный размер процесса, который является суммой память, которую он фактически использует, память, которую он отображал в себя (для экземпляра ОЗУ видеокарты для X-сервера), файлы на диске, которые были отображены в него (особенно общие библиотеки), а память совместно с другими процессами. VIRT показывает, сколько памяти программа имеет доступ в настоящий момент.

RES обозначает размер резидента, что является точным представлением сколько фактической физической памяти потребляет процесс. (Это также соответствует непосредственно столбцу% MEM.) Практически всегда быть меньше, чем размер VIRT, поскольку большинство программ зависят от C библиотека.

SHR указывает, какая часть размера VIRT фактически доступна для совместного использования (память или библиотеки). В случае библиотек это не обязательно означает что вся библиотека резидентная. Например, если программа только использует несколько функций в библиотеке, отображается вся библиотека и будет засчитываться в VIRT и SHR,но только части библиотеки файл, содержащий используемые функции, будет фактически загружен в и учитываться в RES.

16
ответ дан 28 November 2019 в 19:19

VIRtual столбец вверху относится к суперпространство (пространство сверхпотребления) процесса, которое процесс может фактически не занимать во время выполнения. Есть еще один столбец RESident , который относится к фактической физической памяти / пространству, выделенному процессом во время выполнения.

Причину различия между ними можно понять на примере: если процесс использует определенную библиотеку, тогда размер библиотеки также будет способствовать виртуальному размеру . однако, поскольку будет использоваться только часть библиотеки (т.е. некоторые используемые методы), это поможет в resident-size .

См. Дополнительная информация

2
ответ дан 28 November 2019 в 19:19

«VIRT» просто адресное пространство, RES - это «реальная» память, но «SHR» (= разделяемое) количество «RES» - это часть RES, которая используется совместно с другими процессами . Итак, для большинства процессовЯ считаю, что вычитание SHR из RES дает вам объем памяти, который действительно связан с этим конкретным процессом.

0
ответ дан 28 November 2019 в 19:19

Теги

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