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...

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;

KUP-04074: no write access to directory when trying to query EXTERNAL table

Hi All, You may think that in order to query external table you should have only read permission on the Directory Object which sounds very reasonable.... but in some external table the definition include this part of code: ACCESS PARAMETERS         ( records delimited by newline           LOGFILE   "EXTERNAL_FILES" : 'faults.txt'       FIELDS TERMINATED BY ';'             missing FIELD values are null this definition force a write permission on the directory object.  else you will run into this error: ORA-29913: error in executing ODCIEXTTABLEOPEN callout ORA-29400: data cartridge error KUP-04074: no write access to directory object EXTERNAL_FILES 29913. 00000 -  "error in executing %s callout" *Cause:    The execution of the specified callout caused an error. *Acti...