我有一个过程,插入1000万条logging到MySQL数据库,并运行在(4 * 2.13GHz的处理器+ 4演出的内存)的Linux机器上。 现在需要花费大约2个小时才能完成,我不确定这个过程是否利用了所有的处理器。 使用顶部我增加了优先级(显示为-20),运行时间降低到20分钟。
我想让这个过程利用所有的处理器,并且想知道我可以用什么工具查看它?
有没有其他方法可以把更多的CPU /内存的运行过程,并提高执行速度?
你知道,如果这个过程是单线程的,它只能运行在一个单一的核心,对吗? 除非你正在使用一个(或者你已经写成)multithreading的程序,否则你可以确定它不会使用所有的CPU。 做一些快速的search,你可能会遇到死锁,这取决于你的数据库结构,如果你成功地做了一个multithreading插入。 以下是一些其他build议: 使用散装加载程序 。
如果那些帮助不够,告诉我们更多关于你正在努力解决的实际问题。 你需要在20分钟内完成插入吗? less于10? less于5? 你正在解决什么样的业务问题,或者你是在什么限制下工作的?
我想让这个过程利用所有的处理器,并且想知道我可以用什么工具查看它?
分割您的input集。