title: how to reduce the kworker IO on docker running?
body: <p>I'm new to docker. I want to create a docker image for sybase  ASE/IQ. And I got some problems these days --
  while the DB engine perform IO, there always are much more higher extra IO on the host generated by kworker threads. It impacts the IO performance heavily. I can't find solution for it. Please kind advise.
  Here's the details --</p>
  <p>I'm using a image of sles11 from docker hub -- <a href="https://hub.docker.com/r/darksheer/sles11sp4" rel="nofollow noreferrer">https://hub.docker.com/r/darksheer/sles11sp4</a> -- And installed Sybase ASE 15.7 on the container of it. Then while I'm creating the DB server, I found --</p>
  <pre><code> 1. The srvbuildres command runs very slow -- usually it only takes 3-5 minutes to finish on host, but it takes 1.5h to complete on the docker container.
   2. I used &quot;top -d 1&quot; and &quot;iostat -x -k 1&quot; to check IO busy -- found the io_wait is always low , but the svctm are high -- it means the IO is very slow.
   3. I use pidstat to trace the IO request on the host , and found -- most IOs were consumed by kworker threads --
  
  
  
  Here's a sample while I creating a small test database on docker container -- 
  
  08:06:05      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
  08:06:06     1105     66252      0.00     16.00      0.00       0  dataserver
  08:06:06        0     66528      0.00      0.00      0.00       1  kworker/2:2
  08:06:06        0     66574      0.00   2400.00      0.00       0  kworker/1:0
  08:06:06        0     66584      0.00     96.00      0.00       0  kworker/u256:1
  
  08:06:06      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
  08:06:07        0     65159      0.00    720.00      0.00       0  kworker/u256:7
  08:06:07     1105     66252      0.00    112.00      0.00       0  dataserver
  08:06:07        0     66528      0.00  11696.00      0.00       2  kworker/2:2
  08:06:07        0     66530      0.00  14368.00      0.00       0  kworker/3:1
  08:06:07        0     66573      0.00   4768.00      0.00       0  kworker/0:2
  08:06:07        0     66574      0.00   4960.00      0.00       1  kworker/1:0
  08:06:07        0     66584      0.00    848.00      0.00       0  kworker/u256:1
  
  08:06:07      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
  08:06:08        0     65159      0.00   2304.00      0.00       0  kworker/u256:7
  08:06:08     1105     66252      0.00    208.00      0.00       0  dataserver
  08:06:08        0     66528      0.00  18464.00      0.00       0  kworker/2:2
  08:06:08        0     66530      0.00  20608.00      0.00       1  kworker/3:1
  08:06:08        0     66573      0.00   2256.00      0.00       0  kworker/0:2
  08:06:08        0     66574      0.00  18256.00      0.00       0  kworker/1:0
  08:06:08        0     66584      0.00    192.00      0.00       0  kworker/u256:1
  
  The IO of kworker is much higher than the DB process -- &quot;dataserver&quot;, and made the &quot;create database&quot; completed in 5minutes. And I made a same test on the host out of the container, the pidstat shows --
  
  eisen-suse11:~ # pidstat -d 1
  Linux 3.0.101-63-default (eisen-suse11)         01/19/22        _x86_64_
  13:30:07          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
  13:30:08          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
  13:30:09          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
  13:30:10         4860      0.00      4.00      0.00  isql
  
  13:30:10          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
  13:30:11         4845    404.00    404.00      0.00  dataserver
  
  13:30:11          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
  13:30:12          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
  </code></pre>
  <p>So without that kworker, the same &quot;create database&quot; command completed just in 1 seconds...
  I can't search document for it, only found how to limit the CPU/Memory/GPU resource of kworker-- <a href="https://docs.docker.com/config/containers/resource_constraints/" rel="nofollow noreferrer">https://docs.docker.com/config/containers/resource_constraints/</a> -- But no comments on IO tunning.
  Please kind help. Thanks in advance for any ideas.</p>
  <p>Regards
  Eisen</p>