Катастрофический отказ моего диска с помощью Java

Второй ответ:

Необходимо использовать апачские virtualhost возможности:


# url like http://127.0.0.1/.....
ServerName 127.0.0.1
DocumentRoot /htdocs



# url like http://domaina/.....
ServerName domaina
DocumentRoot /htdocs/domaina

документы vhosts

6
задан 6 October 2010 в 18:25
4 ответа

Если система прекращает отвечать, это - ошибка в операционной системе или аппаратная проблема. Программа не должна мочь подвесить систему, неважно, как багги.

Запустите свою программу в другой системе и посмотрите, обеспечивает ли она полезную диагностику для Вашей программы вместо просто опрокидывания.

6
ответ дан 3 December 2019 в 00:14

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

Однако при выполнении тех 3 один за другим, какой бы ни диск файлы писался в катастрофические отказы. В первый раз я выполнил его на Внешнем USB HD, который я должен был вручную разъединить и повторно подключить, чтобы это возобновило операцию (Linux не распознал бы его иначе). Следующий раз, на Внутреннем HD, целая система понизился, и я должен был вручную перезапустить ее. То же произошло при записи в Диск Поршня.

Как Вы управляете своим файлом результатов относительно этого списка миллиона списка сайта, который Вы проверяете? А именно, делает Ваш код, похожи на это (абстрагированный псевдокод следует):

  1. Открытый файл результатов.
  2. Цикл начинается: Для каждого из миллиона сайтов
  3. TestA на сайте
  4. TestB на сайте: концы Цикла
  5. Запишите результаты тестов сайта в файл результатов.

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

Если вышеупомянутое - то, что Вы делаете, попробуйте это вместо этого:

  1. Цикл начинается: Для каждого из миллиона сайтов
  2. TestA на сайте.
  3. TestB на сайте.
  4. Открытый файл результатов.
  5. Запишите результаты тестов сайта в файл результатов.
  6. Близкий файл результатов: концы Цикла

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

Править: развитие редактирования к вопросу:

writeToDatabase(downloadedFile, testAResults, testBResults); 

Два вопроса:

  1. Изменения когда-либо пишутся в Вашу базу данных? Как в, они пишут некоторое время и затем останавливаются? Или действительно ли база данных абсолютно пуста?

  2. Это действительно, как код написан? Если так, у Вас есть потенциальная утечка памяти: та Ссылка на файл передается в Ваш writeToDatabase метод. Вы уверены, что ничто не зависает на ту ссылку?

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

ОТРЕДАКТИРУЙТЕ СНОВА на основе большего количества обратной связи:

Прямо сейчас мои деньги находятся на некоторой странной ошибке на удалении файла.

Это - возможность. Некоторые вещи думать о:

  1. Насколько большой файлы, которые Вы загружаете? Вы могли попробовать отладку, выполненную без удаления? Если бы Вы работаете дольше без того кода, который, конечно, был бы интересным результатом.

  2. Я все еще обеспокоен, что Вы пропускаете дескрипторы файлов. Если Вы проверяете количество обработанных файлов и находите некоторое подозрительное количество файлов обработанным как несколько из 1 024, я более тесно посмотрел бы на то, что находится в удалить методе. Немного трудно сказать без реализации, конечно.

4
ответ дан 3 December 2019 в 00:14

Без дальнейшей информации я предположил бы, что Вы заполнили свой диск. Неспособность соединиться через SSH является немного странной, но возможной, если Вы не можете записать auth.log.

1
ответ дан 3 December 2019 в 00:14

... трудно сказать без определенной информации.

Потоки IO все приятно закрываются после того, как файлы записаны? У Вас есть некоторый предельный набор IO на Unix? Есть ли некоторая проблема параллелизма, потому что они изменяют файлы одновременно? Возможно, можно также сделать несколько Thread.sleep (...) время от времени, чтобы не насыщать диски.

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

0
ответ дан 3 December 2019 в 00:14

Теги

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