Как я делаю дамп памяти всех завершенных процессов?

Я думаю, что мой предмет является довольно точечным на. Я нахожусь на Ubuntu 10.04 на устройстве со следующими спецификациями:

  • Процессор i5 с 3.30 ГГц
  • 16 ГБ Памяти
  • Жесткий диск на 1 ТБ
  • 1 гигабайт на борту сети

Я выполняю 10 пользователей одновременно как виртуальные компьютеры (терминалы) от NComputing.

Я использую вокруг макс. 8 - 10 ГБ Памяти, когда компьютер работает в самом полном. У меня есть следующие приложения, которые все эти 10 пользователей используют одновременно:

  • Firefox
  • LibreOffice
  • Thunderbird
  • Много других папок
  • Партия печати

Около 8:00 - 15:00, мой компьютер (на самом деле сервер) работает абсолютно прекрасный, затем около 15:00 - 15:30 после отъезда, компьютер просто не замораживается ни по какой причине, не давая предупреждения. Я должен вызвать компьютер питанием, не может даже использовать кнопку сброса.

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

Как я делаю это, освобождая дампы памяти, и я должен даже испытать что-нибудь как это на таких мощных аппаратных средствах?

2
задан 10 July 2018 в 20:24

1 ответ

Одно решение из-за на ServerFault прямая кавычка :

я сделал сценарий, который выполняет эту задачу.

коммунисты идеи из ответа James Lawrie и этого сообщения: http://www.linuxforums.org/forum/programming-scripting/52375-reading-memory-other-processes.html#post287195

#!/bin/bash

grep rw-p /proc/$1/maps | sed -n 's/^\([0-9a-f]*\)-\([0-9a-f]*\) .*$/\1 \2/p' | while read start stop; do gdb --batch --pid $1 -ex "dump memory $1-$start-$stop.dump 0x$start 0x$stop"; done

помещает это в файл (например, "dump-all-memory-of-pid.sh") и делает его исполняемым файлом

использование: ./dump-all-memory-of-pid.sh [pid]

вывод печатается в файлы с именами: pid-startaddress-stopaddress.dump

Зависимости: gdb

кавычка

конца единственной вещью добавить является цикл для итерации по всему PIDs.

4
ответ дан 2 December 2019 в 02:32

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

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