2013-03-14 2 views
-2

Когда веб-скребок написан на PHP (работает с nginx, ubuntu), и мы хотим, чтобы у вас было много скрепов, соскабливающих множество разных сайтов за раз, какой будет ограничивающий фактор?Являются ли веб-скребки ограниченными процессором, оперативной памятью или IO?

CPU, RAM или Disk IO?

+3

Добавьте «полосу пропускания», лед и 2 ломтика лимона, затем встряхните. – Emissary

ответ

1

Оперативная память и диск IO, скорее всего, будут ограничены задолго до процессора, в зависимости от того, как могут выполняться одновременные процессы. Каждый скребок, вероятно, будет поддерживать ассоциативный массив посещенных URL-адресов и найти ресурсы. Для больших сайтов это будет ... большим, особенно если вы разрешаете 4k для каждого URL-адреса и сохраняете его необработанным.

Возможно, вы будете иметь URL-адрес (40-байтовый идентификатор GUID или меньшее двоичное представление), чтобы он мог/мог сэкономить много оперативной памяти.

Избегайте дискового ввода-вывода как можно больше, записывая только тогда, когда это абсолютно необходимо для смягчения его воздействия, и подумайте над записью в БД вместо записи в файл на диске, который может быть сетевым.

Смежные вопросы