我使用spark中的mlib库对大小为8g、700万行的数据运行了一个svm算法。我在单个节点上以独立模式运行spark。
我使用/usr/bin/time-v来捕获有关作业的数据。我得到了最高的内存利用率和%的cpu时间等等。我得到的cpu利用率只有6%。我一直在监视top,而程序也在运行一段时间,我可以看到100%以上的用户几乎一直在使用。我现在很困惑为什么/usr/bin/time只显示了6%?
更多细节-我的机器是16g,我运行的程序消耗了13.88g。程序在2.1小时内执行。
有什么见解吗?
1条答案
按热度按时间wh6knrhe1#
我解决了问题。因此,usr/bin/time显示的(6%)是总可用cpu的百分比(本例中为8个线程),而top显示的是1个线程的100%。
顺便说一句,如果这对任何人都有帮助的话,为什么只使用1个线程而不是全部8个线程是因为我在sparkcontext(sc=sparkcontext(“local”,…)中提到了“local”,而不是“local[*])。请在此处阅读更多信息。