All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kentaro Makita <k-makita@np.css.fujitsu.com>
To: linux-kernel@vger.kernel.org
Cc: dgc@sgi.com
Subject: Re: [PATCH][BUGFIX][RFC] fix soft lock up at NFS mount by making limitation of dentry_unused
Date: Fri, 14 Mar 2008 14:15:28 +0900	[thread overview]
Message-ID: <47DA09F0.2030506@np.css.fujitsu.com> (raw)
In-Reply-To: <20080308171911.E365.KOSAKI.MOTOHIRO@jp.fujitsu.com>

[-- Attachment #1: Type: text/plain, Size: 1202 bytes --]

Hi David
On Thu, 6 Mar 2008 16:54:16 +1100  David Chinner wrote:
>> No, we need a smarter free list structure. There have been several attempts
>> at this in the past. Two that I can recall off the top of my head:
>>
>> 	- per node unused LRUs
>> 	- per superblock unusued LRUs
>> I guess we need to revisit this again, because limiting the size of
>> the cache like this is not an option.
I 'm interesting in your patch. I 'll test two patches above if there
is newer version based on latest kernel.

>> Try something that relies on leaving the working set on the unused
>> list, like NFS server benchmarks that have a working set of tens of
>> million of files....
>>
I tested following, and I found no regressions except one case.
 - kernbench-0.24 on local ext3 and nfs
 - dbench-3.04 on local ext3 and nfs
 - IOzone-3.291 on local ext3 and nfs
-Basic file operations (create/delete/list/copy/move) on local ext3 and nfs

but I found one performance regression in my patch at following case.
 - On local ext3, remove 1,000,000 files in a directory spends 23% more time.
 (18m34.901s to 21m55.047s)

I 'm trying to fix it and post again.
Thank you for your suggestion.

Best Regards,
Kentaro Makita

[-- Attachment #2: regression test results --]
[-- Type: text/plain, Size: 5476 bytes --]

-------------------------------------------------------------------------------
Basic file operations :
w/o  patch on local ext3:
target \  operations   | create     |  delete    |  list    |  copy      |  move
-----------------------+----------------------------------------------------------------------------------
1000 dirs x 1000 files | 22m6.930s  | 0m32.682s  | 0m0.037s | 1m31.506s  | 0m2.154s
1000000 files          | 22m37.759s | 18m34.901s | 0m0.002s | 19m24.388s | 0m0.156s
(elapsed time : second(s))

with patch on local ext3:
target \   operations  | create     |  delete    |  list    |  copy       |  move
-----------------------+---------------------------------------------------------------------------------
1000 dirs x 1000 files | 21m54.470s | 0m32.040s  | 0m0.008s |  1m30.796s  | 0m2.943s
1000000 files          | 22m8.381s  | 21m55.047s | 0m0.020s |  21m25.779s | 0m0.052s
(elapsed time : second(s))

w/o  patch on nfs:
target \   operations   | create     |  delete     |  list     |  copy      |  move
------------------------+----------------------------------------------------------------------------------
1000000 files           | 140m7.649s | 293m46.285s | 0m0.098s  | 432m7.720s | 0m0.674s
(elapsed time : second(s))

with patch on nfs:
target \   operations   | create      |  delete     |  list    |  copy       |  move
------------------------+--------------------------------------------------------------------------------
1000000 files           | 141m53.534s | 290m17.669s | 0m0.040s | 440m51.964s | 0m0.361s
(elapsed time : second(s))

IOzone:
# ./iozone -Ra > logfile
on ext3:		
			   bytes / sec (Average)
                	  w/o patch	 with patch
Writer Report   	499,136   	502,536   	100.68%
Re-writer Report	1,774,772   	1,790,133   	100.87%
Reader Report   	3,761,592   	3,818,147   	101.50%
Re-reader Report	5,723,402   	6,020,088   	105.18%
Random Read Report	5,343,096   	5,588,652   	104.60%
Random Write Report	2,054,678   	2,102,237   	102.31%
Backward Read Report	3,628,740   	3,696,570   	101.87%
Record Rewrite Report	3,697,344   	3,760,118   	101.70%
Stride Read Report	4,899,821   	5,053,645   	103.14%
Fwrite Report   	493,434   	493,464   	100.01%
Re-fwrite Report	1,505,555   	1,516,702   	100.74%
Fread Report    	3,330,627   	3,363,825   	101.00%
Re-fread Report 	5,404,997   	5,572,977   	103.11%

on nfs:		
			   bytes / sec (Average)
                	  w/o patch	 with patch
Writer Report   	2,397,539   	2,495,369   	104.08%
Re-writer Report	2,534,827   	2,539,019   	100.17%
Reader Report   	3,692,377   	3,711,528   	100.52%
Re-reader Report	5,783,150   	5,745,256   	99.34%
Random Read Report	5,569,286   	5,663,204   	101.69%
Random Write Report	2,982,048   	2,988,895   	100.23%
Backward Read Report	3,694,922   	3,710,797   	100.43%
Record Rewrite Report	5,844,580   	5,873,414   	100.49%
Stride Read Report	5,043,812   	5,060,472   	100.33%
Fwrite Report   	1,769,812   	1,788,991   	101.08%
Re-fwrite Report	1,964,384   	1,978,361   	100.71%
Fread Report    	3,362,162   	3,293,340   	97.95%
Re-fread Report 	5,441,776   	5,441,807   	100.00%

kernbench-0.42:
# kernbench -M
w/o  patch on local ext3:
2.6.25-rc5
Average Half load -j 12 Run (std deviation):
Elapsed Time 105.354 (0.608383)
User Time 1072.59 (1.42999)
System Time 68.406 (0.540074)
Percent CPU 1082.4 (5.17687)
Context Switches 75067.2 (2425.63)
Sleeps 155188 (2167.44)

Average Optimal load -j 96 Run (std deviation):
Elapsed Time 69.028 (0.523374)
User Time 1106.83 (36.1126)
System Time 67.735 (0.82922)
Percent CPU 1416 (351.761)
Context Switches 105700 (32397.8)
Sleeps 161568 (7136.89)

with patch on local ext3:
2.6.25-rc5dentry
Average Half load -j 12 Run (std deviation):
Elapsed Time 104.962 (0.0630079)
User Time 1071.74 (0.374993)
System Time 68.578 (0.301032)
Percent CPU 1086 (0.707107)
Context Switches 77173.8 (513.063)
Sleeps 156710 (669.205)

Average Optimal load -j 96 Run (std deviation):
Elapsed Time 68.826 (0.942804)
User Time 1107.5 (37.7007)
System Time 67.901 (0.770086)
Percent CPU 1422.2 (354.748)
Context Switches 107092 (31559.1)
Sleeps 161884 (6220.1)

w/o  patch on nfs:
2.6.25-rc5
Average Half load -j 12 Run (std deviation):
Elapsed Time 237.71 (6.4713)
User Time 1087.07 (1.42099)
System Time 190.306 (0.941637)
Percent CPU 537.2 (15.0233)
Context Switches 358822 (8395.04)
Sleeps 4.46148e+06 (53959.4)

Average Optimal load -j 96 Run (std deviation):
Elapsed Time 286.312 (4.8972)
User Time 1127.59 (42.7355)
System Time 304.32 (120.184)
Percent CPU 545.5 (14.6382)
Context Switches 603299 (257858)
Sleeps 9.21507e+06 (5.01086e+06)

with patch on nfs:
2.6.25-rc5dentry
Average Half load -j 12 Run (std deviation):
Elapsed Time 257.704 (8.20142)
User Time 1087.19 (0.992084)
System Time 191.294 (1.11267)
Percent CPU 496 (15.5885)
Context Switches 356975 (14893.6)
Sleeps 4.42764e+06 (68507.4)

Average Optimal load -j 96 Run (std deviation):
Elapsed Time 293.448 (2.64979)
User Time 1127.5 (42.5004)
System Time 308.478 (123.531)
Percent CPU 519.3 (26.9281)
Context Switches 601352 (258290)
Sleeps 9.2956e+06 (5.13148e+06)

dbench-3.04:
(on local and nfs directories)
# dbench 100

w/o patch on local ext3:
Throughput 186.4 MB/sec 100 procs

with patch on local ext3:
Throughput 215.831 MB/sec 100 procs

w/o patch on nfs:
Throughput 3.13253 MB/sec 100 procs

with patch on nfs:
Throughput 3.37892 MB/sec 100 procs
-----------------------------------------------------------------------------------

  reply	other threads:[~2008-03-14  5:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-06  4:41 [PATCH][BUGFIX][RFC] fix soft lock up at NFS mount by making limitation of dentry_unused Kentaro Makita
2008-03-06  5:54 ` David Chinner
2008-03-06  7:15   ` Kentaro Makita
2008-03-08  8:33     ` KOSAKI Motohiro
2008-03-14  5:15       ` Kentaro Makita [this message]
2008-03-14  6:43         ` David Chinner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47DA09F0.2030506@np.css.fujitsu.com \
    --to=k-makita@np.css.fujitsu.com \
    --cc=dgc@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.