cat
выходное содержание команды файла .ssh/id_rsa.pub
; |
(канал) получает этот текстовый вывод и затем отправляет (т.е. каналы) текст к ssh
.
Затем ssh
использование этот текст, как введено для cat >> .ssh/authorized_keys
команда.
В некоторых разбитых на страницы спросом системах виртуальной памяти операционная система отказывается выделять анонимные страницы (т.е. страницы, содержащие данные без источника файловой системы, такие как данные во время выполнения, стопка программы и т.д.), если нет достаточная область подкачки для выгрузки страниц для освобождения физической памяти. Этот строгий учет имеет преимущество, что каждому процессу гарантируют доступ к такой же виртуальной памяти, которую они выделяют, но также средства, что объем доступной виртуальной памяти по существу ограничен размером области подкачки.
На практике программы имеют тенденцию выделять больше памяти, чем они используют. Например, виртуальная машина Java выделяет большую виртуальную память на запуске, но сразу не использует его. Память, считающая в ядре Linux, пытается компенсировать это путем отслеживания объема памяти, на самом деле используемого процессами, и превышает возможности объема виртуальной памяти. Другими словами, объем виртуальной памяти, выделенной ядром, может превысить объем физической памяти и области подкачки, объединенной в системе. В то время как это приводит к лучшему использованию физической памяти и области подкачки, оборотная сторона - то, что, когда сумма используемой памяти превышает объем физической памяти и доступной области подкачки, ядро должно так или иначе освободить ресурсы памяти для выполнения обязательства по выделению памяти.
Механизм ядра, который используется для исправления памяти, называют out-of-memory-killer (OOM-уничтожитель). Обычно механизм начнет избавляться от процессов "жулика" памяти-hogging к свободному память для других процессов. В некоторых средах, жизнеспособном варианте к свободной памяти и возвращают систему операции, может быть должным к перезагрузке. Для этих случаев ядро может быть настроено для паники на условии из памяти через vm.panic_on_oom
установка sysctl.
Память бухгалтерская эвристика использование ядра может быть сделана более либеральной или строгой через vm.overcommit_memory
установка sysctl. Когда строгий учет памяти будет использоваться, ядро больше не будет выделять анонимные страницы, если это не имеет достаточно свободной физической памяти или области подкачки для хранения страниц. Это означает, что важно, чтобы система была настроена с достаточной областью подкачки.
Поэтому Виртуальная память не то, что на самом деле использует процесс, это только, что это могло бы используемый, если это будет использовать все, что это выделило.
Существует невероятно большая сумма описаний термина "Виртуальная память" онлайн, потому что это - общая тема беспорядка, это - один из них: http://en.wikipedia.org/wiki/Virtual_memory
Этот более характерен для Linux: http://www.tldp.org/LDP/tlk/mm/memory.html
В качестве касательной точки, если ваши потоки созданы, и функция потока завершается после выполнения своей работы, но VmDATA продолжает увеличиваться, то у вас есть утечка памяти.
Обычно, когда функция потока завершается, pthread_exit является неявным, но ресурсы потока не освобождаются до тех пор, пока не будет выполнено pthread_join или pthread_detach. Итак, чтобы явно освободить стек потока из кучи и закрыть утечку, сделайте явный вызов для соединения или отсоединения.