Aaron Asked: 2009-07-26 10:00:15 +0800 CST2009-07-26 10:00:15 +0800 CST 2009-07-26 10:00:15 +0800 CST Linux 或 Solaris 的 Kernrate 替代方案 772 问题: 是否有用于 Linux 或 Solaris 的Kernrate的已知替代方案(或类似工具) ,如果有,我在哪里可以找到更多信息? 编辑: 找出哪些设备驱动程序正在生成大量中断。 识别 CPU 密集型功能。 以上所有,在运行实时系统时。 或者是最好的选择,相应地创建内核核心转储和分析? linux solaris kernel 4 个回答 Voted Best Answer James 2009-07-26T10:06:27+08:002009-07-26T10:06:27+08:00 那么top将是传统的过程查看器。显然有一个ktop用于 KDE 的图形版本。您需要该工具的哪些功能,我们或许可以选择更好的解决方案。 那么在 linux 系统上,iotop将显示哪些进程正在生成 io。 通过“识别 CPU 密集型功能”。我假设您的意思是哪些进程正在使用 CPU 和内存,在这种情况下 top 可能是默认答案。 可能值得解释您要解决的问题,而不是什么工具相当于 Windows :) 如果您想了解有关单个进程的更多信息,请检查 /proc/PROCESSID/ 例如 /proc/14232 joe 2009-07-26T21:48:21+08:002009-07-26T21:48:21+08:00 Solaris 有大量可用的性能监控工具,包括 Dtrace,它对于程序调试也非常方便。 kolypto 2009-07-26T18:14:48+08:002009-07-26T18:14:48+08:00 如果您的目标是确定哪些进程使计算机消耗更多电量,请使用“powertop”。这是它的输出示例: 唤醒的主要原因: 23.0% (112.4) amarok : schedule_hrtimeout_range (hrtimer_wakeup) 15.6% (76.0):pata_jmicron、uhci_hcd:usb3、nvidia 9.6% ( 46.8) : HDA 英特尔 7.1% (34.6) 火狐:futex_wait (hrtimer_wakeup) 4.5%(21.8):eth0 3.9%(19.2):ehci_hcd:usb2,uhci_hcd:usb6 3.9% (19.2) USB 设备 6-2:USB 接收器(罗技) 3.5%(17.2):重新安排中断 3.4% (16.4) kwin : schedule_hrtimeout_range (hrtimer_wakeup) 3.3% (16.0):usb_hcd_poll_rh_status (rh_timer_func) 3.2% (15.6) Skype:schedule_hrtimeout_range (hrtimer_wakeup) 2.6% (12.6) psi: schedule_hrtimeout_range (hrtimer_wakeup) 2.2%(10.6):ahci 2.1% (10.4) ktorrent : schedule_hrtimeout_range (hrtimer_wakeup) 2.0%(10.0)Skype:do_nanosleep(hrtimer_wakeup) Marcin 2009-07-26T18:49:00+08:002009-07-26T18:49:00+08:00 您似乎想要的是 vmstat、iotop、sysstat/sar 和 powertop 的组合,就像上面提到的那样。但是,您希望远离大型实用程序(htop、dstat),因为它们会扭曲您尝试观察的数据。当你运行 top 时,通常最忙的进程是什么?最佳!这违反了科学的观察原理。您希望您的探头尽可能轻巧。 您通常可以通过 ltrace 和 strace 运行进程来了解进程在哪里花费的时间最多。如果大部分时间都花在了用户态数字处理上,除非你重做算法,否则你无法修复它。如果大部分时间都花在系统调用上,那么您必须了解您正在使用什么以及如何使用操作系统资源,也许您正在等待锁定完成,或者您过于频繁地强制文件系统刷新。这些东西没有硬性规定,只需运行所有常用的实用程序,看看哪个对你闪烁有意义的东西。了解您的系统调用和错误调用,尤其是在阅读 strace 报告时也非常有启发性。
那么
top
将是传统的过程查看器。显然有一个ktop
用于 KDE 的图形版本。您需要该工具的哪些功能,我们或许可以选择更好的解决方案。那么在 linux 系统上,iotop将显示哪些进程正在生成 io。
通过“识别 CPU 密集型功能”。我假设您的意思是哪些进程正在使用 CPU 和内存,在这种情况下 top 可能是默认答案。
可能值得解释您要解决的问题,而不是什么工具相当于 Windows :)
如果您想了解有关单个进程的更多信息,请检查 /proc/PROCESSID/ 例如 /proc/14232
Solaris 有大量可用的性能监控工具,包括 Dtrace,它对于程序调试也非常方便。
如果您的目标是确定哪些进程使计算机消耗更多电量,请使用“powertop”。这是它的输出示例:
您似乎想要的是 vmstat、iotop、sysstat/sar 和 powertop 的组合,就像上面提到的那样。但是,您希望远离大型实用程序(htop、dstat),因为它们会扭曲您尝试观察的数据。当你运行 top 时,通常最忙的进程是什么?最佳!这违反了科学的观察原理。您希望您的探头尽可能轻巧。
您通常可以通过 ltrace 和 strace 运行进程来了解进程在哪里花费的时间最多。如果大部分时间都花在了用户态数字处理上,除非你重做算法,否则你无法修复它。如果大部分时间都花在系统调用上,那么您必须了解您正在使用什么以及如何使用操作系统资源,也许您正在等待锁定完成,或者您过于频繁地强制文件系统刷新。这些东西没有硬性规定,只需运行所有常用的实用程序,看看哪个对你闪烁有意义的东西。了解您的系统调用和错误调用,尤其是在阅读 strace 报告时也非常有启发性。