Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当一个网络爬虫是用 PHP 编写的(运行 nginx、ubuntu),并且我们希望有很多爬虫一次爬取多个不同的站点,那么限制因素是什么?
CPU、RAM 还是磁盘 IO?
RAM 和磁盘 IO 可能会在 CPU 之前很久就受到限制,具体取决于您同时运行的进程的数量。每个爬虫可能会维护一个访问过的 URL 和找到的资源的关联数组。对于大型网站,这将是......很大,特别是如果您允许每个 URL 使用 4k 并将其存储为原始数据。
您可能会散列 URL(40 字节 GUID,或更小的二进制表示),以便/可以节省大量 RAM。
尽可能避免磁盘 I/O,仅在绝对必要时才写入以减轻其影响,并考虑写入数据库而不是写入可能是网络挂载的磁盘文件。