我制作了一个服务器-客户端应用程序,它根据 CPU 使用率和负载条件为用户提供文件请求。
我正在使用/proc/loadavg values这个。但此实用程序给出了至少 1 分钟内的平均值。
我希望在更短的时间内(如 1 秒或 5 秒)平均取值。
有人让我注意到,如果应用程序正在使用交换文件(当系统 RAM 非常低时),它会增加磁盘 I/0,因此,CPU 使用百分比和 CPU 负载会增加。
这是真的还是那个人完全偏离了轨道?
我在 Ubuntu 14.04 上安装了 f.lux。
GUI 无法正常工作,但我可以通过 xterminal 访问设置。在查看系统监视器时,可以看到一个名为“xflux”的进程正在使用 100% 的 CPU 内核。
是否有解决此问题的方法?
我当然希望这是一个新问题,因为每次我真的厌倦了这个问题时,我都试图找到解决方案,这已经有好几次了,但到目前为止都没有运气。
问题是,当我的 CPU 负载过重时,我的无线鼠标 (HP Z4000) 开始滞后很多。
奇怪的是,如果我将鼠标移近 PC 上的接收器,延迟就会消失。但这不是解决方案,因为当我说更近时,我的意思是距离接收器大约 10-15 厘米,当尝试使用带有外接显示器、鼠标和键盘的笔记本电脑时,这是不可行的。
触摸板也工作得很好。例如,如果我加载一个巨大的文件,无线鼠标将拒绝合作,直到文件完成加载或我使用键盘或触摸板关闭它,这些仍然可用。我已尝试使用所有四个 USB 端口(2x2.0、2x3.0),但问题仍然存在。
有没有可能,高 CPU 负载从 USB 端口汲取电力,因此信号强度减弱?
我使用的是 HP Elitebook G840(i5-4200U,4GB RAM)和 Ubuntu 14.04。
我应该在这里添加任何其他有用的东西吗?
我最近将我的一个系统升级到 16.04,许多停止正常工作的事情之一是 Eclipse IDE。它现在使用了大约 60% 的 CPU,即使窗口被最小化,速度也很慢,有些事情甚至没有响应。
按照Stack Exchange 上的这个答案,我调查了是哪个线程导致了这种行为:
$ ps -mo 'pid lwp stime time pcpu' -C java
PID LWP STIME TIME %CPU
14475 - 09:55 00:02:05 91.6
- 14475 09:55 00:00:00 0.0
- 14476 09:55 00:01:14 54.6
Run Code Online (Sandbox Code Playgroud)
转换为十六进制:
$ printf "0x%x\n" 14476
0x388c
Run Code Online (Sandbox Code Playgroud)
在日志中,我发现了有关此线程的以下内容:
"main" #1 prio=6 os_prio=0 tid=0x00007f10c000a000 nid=0x388c runnable [0x00007f10c8c62000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9326)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1225)
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2435)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3428)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
at …Run Code Online (Sandbox Code Playgroud) 升级到 Ubuntu 16.10 后,我无法使用我的笔记本电脑,因为“kidle_inject”的 CPU 使用率很高。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7966 root -51 0 0 0 0 S 35.2 0.0 4:27.77 kidle_inject/1
8327 xxxx 20 0 1906104 302952 69876 S 34.9 3.7 0:08.15 chromium-browse
7968 root -51 0 0 0 0 S 34.5 0.0 4:31.28 kidle_inject/3
7965 root -51 0 0 0 0 S 33.9 0.0 4:24.68 kidle_inject/0
7967 root -51 0 0 0 0 S 32.6 0.0 4:28.50 kidle_inject/2
Run Code Online (Sandbox Code Playgroud)
sudo rmmod …
我安装了 Ubuntu 16.04 并且我做了所有可用的更新。当我打开我的笔记本电脑时,有时我会注意到由于“fwupd”进程导致 CPU 以 100% 工作,因此我必须手动杀死它以避免电池快速放电!
这个问题有解决方案吗?
好的,我测试了我在之前的评论中报告的解决方案,它就像一个魅力。
是否有任何可能的命令或方法来检查哪个进程在过去 24 小时内导致了高 cpu 利用率,因为昨晚 11:30 pm date:-30-nov-2022 我们收到了 cpu 利用率很高的警报,因此需要弄清楚哪个进程导致利用率高。