Для большинства методов восстановления Вы будете нуждаться в необработанном доступе к устройству хранения данных NAS, т.е. монтировать диск непосредственно на Вашем компьютере, а не получать доступ к полю NAS по Samba. Или если поле NAS самостоятельно запускает Linux или иначе предоставляет Вам доступ командной строки Unix, можно сделать работу восстановления путем выполнения команд непосредственно на NAS.
Во-первых, независимо от того, что Вы делаете, прекратите писать в диск сразу. Получите доступ к нему в режиме только для чтения.
Можно попытаться восстановить структуру файловой системы; ответ jasonwryan имеет хорошие указатели.
Если это не работает, можно восстановить отдельные музыкальные файлы. К счастью, эти файлы имеют тенденцию иметь распознаваемую подпись и (относительно!) легкий обнаружить на изображении файловой системы, и если NAS был новым, они не будут фрагментированы очень. Инструменты для восстановления данных по destructured носителю называют, вырезая инструменты; Вы могли бы попробовать В первую очередь, MagicRescue, PhotoRec (от производителей TestDisk), … большинство этих инструментов доступны на типичных дистрибутивах Unix. Но если Вы предпочитаете, можно выполнить распределение специального назначения или другой живой CD включая средства восстановления, такие как SysRescueCD, Knoppix, CAINE …
Вывод, который Вы показываете, немного нечетен, так как реальное время обычно было бы больше, чем другие два.
Real
время является стеной, показывают время. (что мы могли измерить с секундомером),User
время является количеством времени, тратят в непривилегированном режиме в рамках процессаSys
процессорное время, тратят в ядре в рамках процесса.Таким образом, я предполагаю, была ли работа сделана несколькими процессорами одновременно, процессорное время было бы выше, чем прошедшая стена показывает время.
Действительно ли это было параллельным/многопоточным/параллельным типом приложения?
Так же, как пример это - то, что я вхожу в свою систему Linux, когда я выхожу time find .
команда. Как ожидалось прошедшее real
время намного больше, чем другие на этом отдельном пользователе / одноядерный процесс.
real 0m5.231s
user 0m0.072s
sys 0m0.088s
Эмпирическое правило:
Только для иллюстрирования, что было сказано с двумя потоковые процессы, делающие некоторое вычисление.
/*a.c/*
#include <pthread.h>
static void * dosomething () {
unsigned long a,b=1;
for (a=1000000000; a>0; a--) b*=3;
return NULL;
}
main () {
pthread_t one, two;
pthread_create(&one,NULL, dosomething, NULL);
pthread_create(&two,NULL, dosomething, NULL);
pthread_join (one, NULL);
pthread_join (two, NULL);
}
/* end of a.c */
скомпилировать
gcc a.c -lpthread
(Это должно только проиллюстрировать в реальной жизни, я должен был добавить флаг-D_REENTRANT),
$ time ./a.out
real 0m7.415s
user 0m13.105s
sys 0m0.032s
(Времена находятся на Intel Atom, который имеет два медленных ядра :))
Как сказал Левон:
У меня i7 (8 процессоров ), так что если запустить вbash
:
$ time for ((i=0;i<1000000;i++)); do echo $i; done | wc -l
1000000
real 0m4,878s
user 0m4,368s
sys 0m3,083s
Затем, если ограничить bash одним процессом с помощьюtaskset -cp 0 $BASHPID
$ taskset -cp 0 $BASHPID
pid 30551's current affinity list: 0-7
pid 30551's new affinity list: 0
теперь результат
$ time for ((i=0;i<1000000;i++)); do echo $i; done | wc -l
1000000
real 0m7,120s
user 0m4,282s
sys 0m2,824s
https://www.looklinux.com/how-to-run-process-or-program-on-specific-cpu-cores-in-linux/
avconv
является многопоточным. Пусть это будет.avconv
новое поколениеffmpeg
. Я преобразовывал 7 коротких flv файлов (приблизительно 20 секунд каждый). реальное время – kobylecki 13.06.2012, 18:59find
примерusr
значение намного ниже, потому что большая часть времени была проведена во время прерываний, даже еслиfind
было бы многопоточным, это останется низким (извините, если я не осваиваю английский язык, напрягается). – Emmanuel 07.10.2013, 15:07