linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
To: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org,
	Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Subject: Re: zram: per-cpu compression streams
Date: Tue, 26 Apr 2016 20:23:05 +0900	[thread overview]
Message-ID: <20160426112305.GA1155@swordfish> (raw)
In-Reply-To: <20160419080025.GE18448@bbox>

Hello Minchan,

On (04/19/16 17:00), Minchan Kim wrote:
[..]
> I'm convinced now with your data. Super thanks!
> However, as you know, we need data how bad it is in heavy memory pressure.
> Maybe, you can test it with fio and backgound memory hogger,

it's really hard to produce stable test results when the system
is under mem pressure.

first, I modified zram to export the re-compression number
(put cpu stream and re-try handler allocation)

mm_stat for numjobs{1..10}. the number of re-compressions is in "< NUM>" format

3221225472 3221225472 3221225472        0 3221229568        0        0 <    6421>
3221225472 3221225472 3221225472        0 3221233664        0        0 <    6998>
3221225472 2912157607 2952802304        0 2952814592        0       84 <    7271>
3221225472 2893479936 2899120128        0 2899136512        0      156 <    8260>
3221217280 2886040814 2899099648        0 2899128320        0       78 <    8297>
3221225472 2880045056 2885693440        0 2885718016        0       54 <    7794>
3221213184 2877431364 2883756032        0 2883801088        0      144 <    7336>
3221225472 2873229312 2876096512        0 2876133376        0       28 <    8699>
3221213184 2870728008 2871693312        0 2871730176        0       30 <    8189>
2899095552 2899095552 2899095552        0 2899136512    78643        0 <    7485>

as we can see, the number of re-compressions can vary from 6421 to 8699.


the test:

-- 4 GB x86_64 box
-- zram 3GB, lzo
-- mem-hogger pre-faults 3GB of pages before the fio test
-- fio test has been modified to have 11% compression ratio (to increase the
                                                  chances of re-compressions)
   -- buffer_compress_percentage=11
   -- scramble_buffers=0


considering buffer_compress_percentage=11, the box was under somewhat
heavy pressure.

now, the results


fio stats

                4 streams        8 streams       per cpu
===========================================================
#jobs1                         	                	                
READ:           2411.4MB/s	 2430.4MB/s	 2440.4MB/s
READ:           2094.8MB/s	 2002.7MB/s	 2034.5MB/s
WRITE:          141571KB/s	 140334KB/s	 143542KB/s
WRITE:          712025KB/s	 706111KB/s	 745256KB/s
READ:           531014KB/s	 525250KB/s	 537547KB/s
WRITE:          530960KB/s	 525197KB/s	 537492KB/s
READ:           473577KB/s	 470320KB/s	 476880KB/s
WRITE:          473645KB/s	 470387KB/s	 476948KB/s
#jobs2                         	                	                
READ:           7897.2MB/s	 8031.4MB/s	 7968.9MB/s
READ:           6864.9MB/s	 6803.2MB/s	 6903.4MB/s
WRITE:          321386KB/s	 314227KB/s	 313101KB/s
WRITE:          1275.3MB/s	 1245.6MB/s	 1383.5MB/s
READ:           1035.5MB/s	 1021.9MB/s	 1098.4MB/s
WRITE:          1035.6MB/s	 1021.1MB/s	 1098.6MB/s
READ:           972014KB/s	 952321KB/s	 987.66MB/s
WRITE:          969792KB/s	 950144KB/s	 985.40MB/s
#jobs3                         	                	                
READ:           13260MB/s	 13260MB/s	 13222MB/s
READ:           11636MB/s	 11636MB/s	 11755MB/s
WRITE:          511500KB/s	 507730KB/s	 504959KB/s
WRITE:          1646.1MB/s	 1673.9MB/s	 1755.5MB/s
READ:           1389.5MB/s	 1387.2MB/s	 1479.6MB/s
WRITE:          1387.6MB/s	 1385.3MB/s	 1477.4MB/s
READ:           1286.8MB/s	 1289.1MB/s	 1377.3MB/s
WRITE:          1284.8MB/s	 1287.1MB/s	 1374.9MB/s
#jobs4                         	                	                
READ:           19851MB/s	 20244MB/s	 20344MB/s
READ:           17732MB/s	 17835MB/s	 18097MB/s
WRITE:          667776KB/s	 655599KB/s	 693464KB/s
WRITE:          2041.2MB/s	 2072.6MB/s	 2474.1MB/s
READ:           1770.1MB/s	 1781.7MB/s	 2035.5MB/s
WRITE:          1765.8MB/s	 1777.3MB/s	 2030.5MB/s
READ:           1641.6MB/s	 1672.4MB/s	 1892.5MB/s
WRITE:          1643.2MB/s	 1674.2MB/s	 1894.4MB/s
#jobs5                         	                	                
READ:           19468MB/s	 18484MB/s	 18439MB/s
READ:           17594MB/s	 17757MB/s	 17716MB/s
WRITE:          843266KB/s	 859627KB/s	 867928KB/s
WRITE:          1927.1MB/s	 2041.8MB/s	 2168.9MB/s
READ:           1718.6MB/s	 1771.7MB/s	 1963.5MB/s
WRITE:          1712.7MB/s	 1765.6MB/s	 1956.8MB/s
READ:           1705.3MB/s	 1663.6MB/s	 1767.3MB/s
WRITE:          1704.3MB/s	 1662.6MB/s	 1766.2MB/s
#jobs6                         	                	                
READ:           21583MB/s	 21685MB/s	 21483MB/s
READ:           19160MB/s	 18432MB/s	 18618MB/s
WRITE:          986276KB/s	 1004.2MB/s	 981.11MB/s
WRITE:          2013.6MB/s	 1922.5MB/s	 2429.1MB/s
READ:           1797.1MB/s	 1678.9MB/s	 2038.8MB/s
WRITE:          1794.8MB/s	 1675.9MB/s	 2035.2MB/s
READ:           1678.2MB/s	 1632.5MB/s	 1917.4MB/s
WRITE:          1673.9MB/s	 1627.6MB/s	 1911.6MB/s
#jobs7                         	                	                
READ:           20697MB/s	 21677MB/s	 21062MB/s
READ:           18781MB/s	 18667MB/s	 19338MB/s
WRITE:          1074.6MB/s	 1099.8MB/s	 1105.3MB/s
WRITE:          2100.7MB/s	 2010.3MB/s	 2598.7MB/s
READ:           1783.2MB/s	 1710.2MB/s	 2027.8MB/s
WRITE:          1784.3MB/s	 1712.1MB/s	 2029.6MB/s
READ:           1690.8MB/s	 1620.6MB/s	 1893.6MB/s
WRITE:          1681.4MB/s	 1611.7MB/s	 1883.7MB/s
#jobs8                         	                	                
READ:           19883MB/s	 20827MB/s	 20395MB/s
READ:           18562MB/s	 18178MB/s	 17822MB/s
WRITE:          1240.5MB/s	 1307.3MB/s	 1331.7MB/s
WRITE:          2132.1MB/s	 2143.6MB/s	 2564.9MB/s
READ:           1841.1MB/s	 1831.1MB/s	 2111.4MB/s
WRITE:          1843.1MB/s	 1833.1MB/s	 2113.4MB/s
READ:           1795.4MB/s	 1778.6MB/s	 2029.3MB/s
WRITE:          1791.4MB/s	 1774.5MB/s	 2024.5MB/s
#jobs9                         	                	                
READ:           18834MB/s	 19470MB/s	 19402MB/s
READ:           17988MB/s	 18118MB/s	 18531MB/s
WRITE:          1339.4MB/s	 1441.2MB/s	 1512.6MB/s
WRITE:          2102.4MB/s	 2111.9MB/s	 2478.8MB/s
READ:           1754.5MB/s	 1777.3MB/s	 2050.2MB/s
WRITE:          1753.9MB/s	 1776.7MB/s	 2049.5MB/s
READ:           1686.4MB/s	 1698.2MB/s	 1931.6MB/s
WRITE:          1684.1MB/s	 1696.8MB/s	 1929.1MB/s
#jobs10                        	                	                
READ:           19128MB/s	 19517MB/s	 19592MB/s
READ:           18177MB/s	 17544MB/s	 18221MB/s
WRITE:          1397.1MB/s	 1567.4MB/s	 1683.2MB/s
WRITE:          2151.9MB/s	 2205.1MB/s	 2642.6MB/s
READ:           1879.2MB/s	 1907.3MB/s	 2223.2MB/s
WRITE:          1878.5MB/s	 1906.2MB/s	 2222.8MB/s
READ:           1835.7MB/s	 1837.9MB/s	 2131.4MB/s
WRITE:          1838.6MB/s	 1840.8MB/s	 2134.8MB/s


perf stats

                             4 streams                     8 streams                       per cpu
====================================================================================================================
jobs1
stalled-cycles-frontend      52,219,601,943 (  55.87%)	   53,406,899,652 (  56.33%)	   49,944,625,376 (  56.27%)
stalled-cycles-backend       23,194,739,214 (  24.82%)	   24,397,423,796 (  25.73%)	   22,782,579,660 (  25.67%)
instructions                 86,078,512,819 (    0.92)	   86,235,354,709 (    0.91)	   80,378,845,354 (    0.91)
branches                     15,732,850,506 ( 532.108)	   15,743,473,327 ( 522.592)	   14,725,420,241 ( 523.425)
branch-misses                   104,546,578 (   0.66%)	      107,847,818 (   0.69%)	      106,343,602 (   0.72%)
jobs2
stalled-cycles-frontend     118,614,605,521 (  59.74%)	  113,520,838,279 (  59.94%)	  104,301,243,221 (  59.06%)
stalled-cycles-backend       59,490,170,824 (  29.96%)	   56,518,872,622 (  29.84%)	   50,161,702,782 (  28.40%)
instructions                169,663,993,572 (    0.85)	  160,959,388,344 (    0.85)	  153,541,182,646 (    0.87)
branches                     31,859,926,551 ( 497.945)	   30,132,524,256 ( 494.660)	   28,579,927,064 ( 503.079)
branch-misses                   164,531,311 (   0.52%)	      163,509,596 (   0.54%)	      145,472,902 (   0.51%)
jobs3
stalled-cycles-frontend     153,932,401,104 (  60.86%)	  158,470,334,291 (  60.81%)	  150,767,641,835 (  59.21%)
stalled-cycles-backend       77,023,824,597 (  30.45%)	   79,673,952,089 (  30.57%)	   72,693,245,174 (  28.55%)
instructions                197,452,119,661 (    0.78)	  204,116,060,906 (    0.78)	  207,832,729,315 (    0.82)
branches                     36,579,918,543 ( 404.660)	   37,980,582,651 ( 406.326)	   39,091,715,974 ( 428.559)
branch-misses                   214,292,753 (   0.59%)	      215,861,282 (   0.57%)	      203,320,703 (   0.52%)
jobs4
stalled-cycles-frontend     237,223,396,661 (  64.22%)	  227,572,336,186 (  64.37%)	  202,100,979,033 (  61.41%)
stalled-cycles-backend      129,935,296,918 (  35.17%)	  124,957,172,193 (  35.34%)	  103,626,575,103 (  31.49%)
instructions                270,083,196,348 (    0.73)	  257,652,752,109 (    0.73)	  259,773,237,031 (    0.79)
branches                     52,120,828,566 ( 391.426)	   49,121,254,042 ( 385.647)	   49,896,944,076 ( 420.532)
branch-misses                   260,480,947 (   0.50%)	      254,957,745 (   0.52%)	      239,402,681 (   0.48%)
jobs5
stalled-cycles-frontend     257,778,703,389 (  64.89%)	  265,688,762,182 (  65.13%)	  229,916,792,090 (  61.41%)
stalled-cycles-backend      142,090,098,727 (  35.77%)	  147,101,411,510 (  36.06%)	  117,081,586,471 (  31.27%)
instructions                291,859,438,730 (    0.73)	  298,380,653,546 (    0.73)	  302,840,047,693 (    0.81)
branches                     55,111,567,225 ( 385.905)	   56,316,470,332 ( 383.545)	   57,500,842,324 ( 428.083)
branch-misses                   270,056,201 (   0.49%)	      269,400,845 (   0.48%)	      258,495,925 (   0.45%)
jobs6
stalled-cycles-frontend     311,626,093,277 (  65.61%)	  314,291,595,576 (  65.77%)	  249,524,291,273 (  61.39%)
stalled-cycles-backend      174,358,063,361 (  36.71%)	  177,312,195,233 (  37.10%)	  126,508,172,269 (  31.13%)
instructions                345,271,436,105 (    0.73)	  346,679,577,246 (    0.73)	  333,258,054,473 (    0.82)
branches                     65,298,537,641 ( 381.664)	   65,995,652,812 ( 383.717)	   62,730,160,550 ( 428.999)
branch-misses                   313,241,654 (   0.48%)	      307,876,772 (   0.47%)	      282,570,360 (   0.45%)
jobs7
stalled-cycles-frontend     333,896,608,350 (  64.68%)	  349,165,441,969 (  64.85%)	  276,185,831,513 (  59.95%)
stalled-cycles-backend      186,083,638,772 (  36.05%)	  197,000,957,906 (  36.59%)	  138,835,486,733 (  30.14%)
instructions                388,707,023,219 (    0.75)	  404,347,465,692 (    0.75)	  394,078,203,426 (    0.86)
branches                     71,999,476,930 ( 387.008)	   76,197,698,685 ( 392.759)	   73,195,649,665 ( 440.914)
branch-misses                   328,598,294 (   0.46%)	      323,895,230 (   0.43%)	      298,205,996 (   0.41%)
jobs8
stalled-cycles-frontend     378,806,234,772 (  66.73%)	  369,453,970,323 (  66.55%)	  313,738,845,641 (  62.55%)
stalled-cycles-backend      211,732,966,238 (  37.30%)	  207,691,463,546 (  37.41%)	  161,120,924,768 (  32.12%)
instructions                406,674,721,912 (    0.72)	  401,922,649,599 (    0.72)	  405,830,823,213 (    0.81)
branches                     75,637,492,422 ( 369.371)	   74,287,789,757 ( 371.226)	   75,967,291,039 ( 420.260)
branch-misses                   355,733,892 (   0.47%)	      328,972,387 (   0.44%)	      318,203,258 (   0.42%)
jobs9
stalled-cycles-frontend     422,712,242,907 (  66.39%)	  417,293,429,710 (  66.14%)	  343,703,467,466 (  61.35%)
stalled-cycles-backend      239,356,726,574 (  37.59%)	  231,725,068,834 (  36.73%)	  172,101,321,805 (  30.72%)
instructions                465,964,470,967 (    0.73)	  468,561,486,803 (    0.74)	  474,119,504,255 (    0.85)
branches                     86,724,291,348 ( 377.755)	   86,534,438,758 ( 380.374)	   88,431,722,886 ( 437.939)
branch-misses                   385,706,052 (   0.44%)	      360,946,347 (   0.42%)	      337,858,267 (   0.38%)
jobs10
stalled-cycles-frontend     451,844,797,592 (  67.24%)	  435,099,070,573 (  67.18%)	  352,877,428,118 (  62.18%)
stalled-cycles-backend      255,533,666,521 (  38.03%)	  249,295,276,734 (  38.49%)	  179,754,582,074 (  31.67%)
instructions                472,331,884,636 (    0.70)	  458,948,698,965 (    0.71)	  464,131,768,633 (    0.82)
branches                     88,848,212,769 ( 366.556)	   85,330,239,413 ( 365.282)	   86,837,838,069 ( 424.329)
branch-misses                   398,856,497 (   0.45%)	      359,532,394 (   0.42%)	      333,821,387 (   0.38%)



perf reported execution time

                       4 streams        8 streams       per cpu
====================================================================
seconds elapsed        41.359653597	43.131195776	40.961640812
seconds elapsed        37.778174380	38.681792299	38.368529861
seconds elapsed        38.367149768	39.368008799	37.687545579
seconds elapsed        40.402963748	39.177529033	36.205357101
seconds elapsed        44.145428970	43.251655348	41.810848146
seconds elapsed        49.344988495	49.951048242	44.270045250
seconds elapsed        53.865398777	54.271392367	48.824173559
seconds elapsed        57.028770416	56.228105290	51.332017545
seconds elapsed        62.931350164	61.251237873	55.977463074
seconds elapsed        67.088285633	63.544376242	57.690998344


	-ss

  parent reply	other threads:[~2016-04-26 11:21 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-23  8:12 zram: per-cpu compression streams Sergey Senozhatsky
2016-03-24 23:41 ` Minchan Kim
2016-03-25  1:47   ` Sergey Senozhatsky
2016-03-28  3:21     ` Minchan Kim
2016-03-30  8:34       ` Sergey Senozhatsky
2016-03-30 22:12         ` Minchan Kim
2016-03-31  1:26           ` Sergey Senozhatsky
2016-03-31  5:53             ` Minchan Kim
2016-03-31  6:34               ` Sergey Senozhatsky
2016-04-01 15:38                 ` Sergey Senozhatsky
2016-04-04  0:27                   ` Minchan Kim
2016-04-04  1:17                     ` Sergey Senozhatsky
2016-04-18  7:57                       ` Sergey Senozhatsky
2016-04-19  8:00                         ` Minchan Kim
2016-04-19  8:08                           ` Sergey Senozhatsky
2016-04-26 11:23                           ` Sergey Senozhatsky [this message]
2016-04-27  7:29                             ` Minchan Kim
2016-04-27  7:43                               ` Sergey Senozhatsky
2016-04-27  7:55                                 ` Minchan Kim
2016-04-27  8:10                                   ` Sergey Senozhatsky
2016-04-27  8:54                               ` Sergey Senozhatsky
2016-04-27  9:01                                 ` Sergey Senozhatsky

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=20160426112305.GA1155@swordfish \
    --to=sergey.senozhatsky.work@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=minchan@kernel.org \
    --cc=sergey.senozhatsky@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).