Skip to main content

Kworker processes are eating my host's cpu (and server load is high)


when you look for kworker processes you see many of those

using a lot of CPU and making your server load very high

 $ ps -aux | grep kworker

root        15  0.0  0.0      0     0 ?        S    Aug12   0:00 [kworker/1:0]
root        16  0.0  0.0      0     0 ?        S<   Aug12   0:00 [kworker/1:0H]
root        85  0.0  0.0      0     0 ?        S<   Aug12   0:09 [kworker/0:1H]
root      3562  0.0  0.0      0     0 ?        S<   Aug12   0:00 [kworker/0:2H]
root      5578  0.0  0.0      0     0 ?        S    11:13   0:01 [kworker/0:0]
root      5579  0.0  0.0      0     0 ?        S    11:13   0:00 [kworker/u4:1]
root      8789  0.1  0.0      0     0 ?        S    12:19   0:10 [kworker/0:2]
root     30236  0.0  0.0      0     0 ?        S    08:39   0:01 [kworker/u4:0]

top:

top - 10:10:17 up 20:15,  3 users,  load average: 24.01, 28.04, 19.36
Tasks: 436 total,   1 running, 435 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.2 us,  0.0 sy,  0.0 ni, 97.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

so what's going on??

there is a probability you linux server is on "Power saving" mode
means that cpu is not started until an application is requesting a cpu 
then there is a lot of traffic and interrupts between kernel and cpus if you application is a bit greedy

how to identify your linux server is on power saving mode?

look at the CPU frequency - if it's not equal and on max level, ask your IT guy to change it

[root@server111 ~]# cat /proc/cpuinfo | grep MHz
cpu MHz         : 1200.000
cpu MHz         : 2130.000
cpu MHz         : 1200.000
cpu MHz         : 2700.000
cpu MHz         : 1200.000
cpu MHz         : 1200.000
cpu MHz         : 1230.000
cpu MHz         : 1200.000
cpu MHz         : 1200.000
cpu MHz         : 1200.000
cpu MHz         : 1200.000
cpu MHz         : 1200.000
cpu MHz         : 2475.000
cpu MHz         : 1200.000
cpu MHz         : 1200.000
cpu MHz         : 2400.000
cpu MHz         : 2415.000  



after fixing and rebooting the server:

[root@server111 ~]# cat /proc/cpuinfo | grep MHz
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400
cpu MHz         : 2693.400

top:
top - 06:54:45 up  3:39,  2 users,  load average: 0.10, 0.18, 0.22
Tasks: 424 total,   1 running, 423 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

Comments

Popular posts from this blog

ORA-27104: system-defined limits for shared memory was misconfigured

I faced this error while trying to restore & recover of a PDB (pluggable database) part of the log file and the solution is described here below: log: initialization parameters used for automatic instance: db_name=CDB db_unique_name=gbux_pitr_PDB1_CDB compatible=12.1.0.2.0 db_block_size=8192 db_files=200 diagnostic_dest=/oracle/app/oracle _system_trig_enabled=FALSE sga_target=1888M processes=200 db_create_file_dest=/oracle/auxilary log_archive_dest_1='location=/oracle/auxilary' enable_pluggable_database=true _clone_one_pdb_recovery=true #No auxiliary parameter file used starting up automatic instance CDB RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 07/31/2016 16:22:20 RMAN-04014: startup failed: ORA-27104: system-defined limits for shared...

Missing command :fuser Prerequisite check "CheckSystemCommandAvailable" failed

When trying to apply patch you may face this error the solution is described below. ERROR: bash-4.2$ ../opatch apply Oracle Interim Patch Installer version 12.2.0.1.5 Copyright (c) 2016, Oracle Corporation.  All rights reserved. Oracle Home       : /oracle/app/oracle/product/12.1.0 Central Inventory : /oracle/app/oracle/oraInventory    from           : /oracle/app/oracle/product/12.1.0/oraInst.loc OPatch version    : 12.2.0.1.5 OUI version       : 12.1.0.2.0 Log file location : /oracle/app/oracle/product/12.1.0/cfgtoollogs/opatch/opatch2016-07-27_16-27-44PM_1.log Verifying environment and performing prerequisite checks... Prerequisite check "CheckSystemCommandAvailable" failed. The details are: Missing command :fuser Prerequisite check "CheckSystemCommandAvailable" failed. The details are: Missing command :fuser Prerequisite ...

ora-65035 while create pluggable database from another one

or : ORA-21000: error number argument to raise_application_error of -65035 is out of range Cause: this error caused because of an unrecoverable transaction in the source DB. Solution: 1. either stop and start your pluggable source DB 2. identify the open transaction and kill it if you can. use this query to do so: select * from v$transaction t,v$session  s where t.ses_addr = s.saddr;