Majestic-12
该页面正在被编辑 用户 Arthur200000 正在编辑该页面,尚未完工。请其他Wiki用户不要同时编辑,以避免冲突。
该用户的说明:大坑慎入,StephDC的话帮忙补完的说 。 如果该页面长期无人编辑,请去除该模板并添加上合适的页面状态模板。 欢迎无wiki账号的用户到论坛的Wiki系统讨论区(注册)参与讨论,有账号用户请到讨论:Majestic-12发表见解。 |
Majestic-12 是一个分布式的搜索引擎。通过运行一个基于 .NET 写成的网络爬虫,客户端下载、解析并打包结果发送回一台运行在奔腾 CPU 上的中心服务器进行索引处理。
如何加入
- 前往项目官方网站。
- 下载与自身版本对应的运算程序。我们知道下载速度很可怕,你可以试试 百度盘。
- 解压并启动程序。
- 对于使用 Mono 运行 .NET 程序的非 Windows 平台,官方强烈不建议使用 64 位 mono,然而我们并没有发现会出什么问题。如果你觉得 64 位快或者懒得装 32 的,就用吧。启动方式永远是 cd 进去 mono xxx.exe 没跑的。
- 在 Mac OS X 上,你可能想预先运行一堆 ulimit 命令来提高允许同时最大打开的文件数量以便避免 MJ12 线程开多的时候无法打开文件。懒惰的编者们早就忘了到底怎么调,总之 help ulimit 一下啦。
- 你还可以使用 mono 的一些优化参数来略过一些检查以提高性能,反正严谨性对爬虫来说重要不到哪里去。Mono 的 --llvm 选项可以让 mono 尝试和 LLVM 打交道以获得更高的速度,并且不会造成什么稳定性降低。
- 对于使用 Mono 运行 .NET 程序的非 Windows 平台,官方强烈不建议使用 64 位 mono,然而我们并没有发现会出什么问题。如果你觉得 64 位快或者懒得装 32 的,就用吧。启动方式永远是 cd 进去 mono xxx.exe 没跑的。
- 打开设置(如果你是非 Windows 上的无 GUI 版本的用户,打开 localhost 上的网页进行设置;如果网页服务器没启动,MJ12 在控制台有选择端口手动启动的选项),注册账号并且登陆。
- 你现在已经加入了这个项目,可以现在去官网跑一圈加入 Team China。接下来要进行一些配置,以便 MJ12 如你所想的那般工作。
参数设置
一份样例参数设置可见于 #外部链接 中的一个讨论帖。
Personal 个人
建议设置优先处理你认为访问速度会较快的 TLD(顶级域名,.cn 那玩意),例如如果你住在中国你会猜测 cn 域名的访问速度较快,那么就将它放进 preferred TLDs 里面。你可以设置一个可爱的 Node name。
Connection 连接
你最好诚实地告诉 MJ12 你的带宽量,然后按照你想让它用多少加限制。对于别人也会用的半公共电脑来说(完全公共的电脑跑分布式计算可不大道德哦),我们一般上传下载设置 60%,另外在 #Profiles_配置 里面启用 Full Speed When Idle,自己用电脑的时候右键 MJ12 要求停转半小时。
如果你身处内网,取消选择 Connect to superpeer directly 可能是个好选择,毕竟在复杂的网络环境中 HTTP 还是比较稳定。
Bandwidth Check Period 可以适当放宽,我们本来就没准备那么严格限速。Network Communications Timeout 可以放低一点到 5,早点放弃速度慢的网页把锅甩给墙外的人们是个好选择。
Crawler 爬虫
- Bucket
- “网址桶”工作包,类似 Workunit。
你可以调高同时运行的线程数(async workers)。MJ12 允许多个线程对着同一个桶爬,反之亦然。基本上线程数可以是桶的数量的二倍,而桶的数量为以 Mbps 计算的网络带宽数值的五倍(保守估计)。
我们强烈建议你拉低 Generals 和 CPU Usage Tuning 里面的各种 Delay 到 1,毕竟新机器完全不需要担心 CPU 占用,再说还可以去 #Misc 杂项 调优先级。同样,我们建议你关闭上传间的等待(No delay between upload trunks)。Stop if uploads greater than, and start when less than 和 Reserved buckets 可以适当加大。
在网页上你可以打开 Minimise Disk activity (IO) during archiving,我们一般认为这是个好主意。
More Crawler 更多
这里控制爬虫的一些额外选项。我们建议你创建一个内存盘(ramdisk/ramdrive),并且把它设置为爬虫的临时目录,因为临时目录需要频繁且高速的读写。在 Linux、BSD、OS X 这种 Unix 类系统上,你可以直接使用 /tmp(心情好的话可以用 /tmp/mj12 之类的目录隔开)。
Profiles 配置
这里可以设置各种条件下的工作模式。
Misc 杂项
这里你可以调整工作程序的进程优先级,好让它更好地与其他程序分享资源。如果你运行计算密集型的分布式计算程序,建议不要让任何优先级为 Idle,否则慢死你。
你可以设置 Web server 以便在网页上甚至从其他电脑有密码或无密码地管理 MJ12。
在 Real misc stuffs 里面,你可以适当加大每个 Bucket 的缓冲区、加大内存清理间隔和阈值。
Archiving 打包
这里控制压缩结果并发送的方式。我们一般设置 Archiving Delay 为 1,就像别的延迟一样。是的,我们不知道 0 的时候会不会关闭所以就瞎找了个最小的。
我们一般把 Word size 和 Dictionary size 开最大(分别是 128 和 16)来最小化结果体积以便在国内可怕的网络环境中能更快地上传,尽管那可能会累坏服务器。你可以加大一些 In Memory Sort Buffers,加一点点就好。
DSearch
DSearch 就是搜索本身。
HTML parser
HTML 解析器,据说一直在变强。
外部链接
- 我的MJ12立刻就超过了StephDC - Arthur200000,在本站中极其稀有的对本项目的讨论,有一份参数设置。
- ImDisk 是一个适用于 Windows 的内存盘程序。