Phy*_*win 16 mysql linux performance python
我正在编写一个索引器,使用 python,它索引文档并将它们插入到数据库中,在它是单个进程之前,但现在我使用 4 个并行进程运行进行多处理。每次文本提取后,它插入到数据库中并进行提交。
现在遇到了IO问题,主要的IO问题不是我的进程而是EXT4的jdb2,journeling系统。它是在 99.99% 并且在每个 MySQL 提交时让 CPU 等待 IO。
我在互联网上看到很多人遇到这个问题,他们的解决方案是使用 barrier = 0 进行挂载。那会完全禁用日记功能吗?我的服务器有 UPS 并且很想这样做,我应该这样做吗?
将数据库放在非日志文件系统上。至少较大的服务器(oracle、sql server)有自己的日志功能(事务日志)并相应地优化它们的 IO。您在单独的文件系统和磁盘上拥有日志和数据库,并依靠数据库内部功能来处理错误的 IO。除了写入日期之外,通常没有(更大的设置)文件系统更改,因为文件不会扩展 - 它们将以其“最终”大小生成(好吧,管理员可以更改),并且更改正如我所说的由数据库跟踪级别的事务日志。
您可能还想告诉我们您的硬件层是什么。大多数人低估了IOPS是数据库的限制因素,认为小磁盘集是大数据库的合适环境。虽然我们中的一些人使用大量磁盘处理数据库,因此可能支持更高数量的 IOPS。
您使用什么数据库引擎来插入这些数据?
如果是 MyISAM:则必须在写入期间锁定整个表,因此运行并发插入线程将杀死任何系统,无论系统多么强大。
确保您对这些表使用 InnoDB。
| 归档时间: |
|
| 查看次数: |
51995 次 |
| 最近记录: |