我正在编写一个索引器,使用 python,它索引文档并将它们插入到数据库中,在它是单个进程之前,但现在我使用 4 个并行进程运行进行多处理。每次文本提取后,它插入到数据库中并进行提交。
现在遇到了IO问题,主要的IO问题不是我的进程而是EXT4的jdb2,journeling系统。它是在 99.99% 并且在每个 MySQL 提交时让 CPU 等待 IO。
我在互联网上看到很多人遇到这个问题,他们的解决方案是使用 barrier = 0 进行挂载。那会完全禁用日记功能吗?我的服务器有 UPS 并且很想这样做,我应该这样做吗?
在数字取证领域,1GB的数据包大小很常见,我遇到了麻烦。
使用内部 python 脚本,我们从档案中提取文本,一些文件大到 4 GB,其中的文本可以轻松达到 1 GB。然后我们使用 Sphinxsearch 使其可搜索。
所以现在我在将这些文本插入数据库时面临数据包数据包太大错误。
机器是 64 核,64 GB 内存,可以轻松处理 Terrabytes。
所以我该怎么做?
另一个问题是,在 < 1GB 数据包期间,增加 max_allow_packet 是否也会增加内存使用量?
操作系统:Linux 2.6.39 Mysql:5.1 和 5.5