All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jingbo Xu <jefflexu@linux.alibaba.com>
To: Gao Xiang <hsiangkao@linux.alibaba.com>,
	Alexander Larsson <alexl@redhat.com>,
	Amir Goldstein <amir73il@gmail.com>,
	gscrivan@redhat.com, brauner@kernel.org
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	david@fromorbit.com, viro@zeniv.linux.org.uk,
	Vivek Goyal <vgoyal@redhat.com>,
	Miklos Szeredi <miklos@szeredi.hu>
Subject: Re: [PATCH v3 0/6] Composefs: an opportunistically sharing verified image filesystem
Date: Wed, 1 Feb 2023 12:28:15 +0800	[thread overview]
Message-ID: <51d9d1b3-2b2a-9b58-2f7f-f3a56c9e04ac@linux.alibaba.com> (raw)
In-Reply-To: <8ffa28f5-77f6-6bde-5645-5fb799019bca@linux.alibaba.com>

Hi all,

There are some updated performance statistics with different
combinations on my test environment if you are interested.


On 1/27/23 6:24 PM, Gao Xiang wrote:
> ...
> 
> I've made a version and did some test, it can be fetched from:
> git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git -b
> experimental
> 

Setup
======
CPU: x86_64 Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
Disk: 6800 IOPS upper limit
OS: Linux v6.2 (with composefs v3 patchset)

I build erofs/squashfs images following the scripts attached on [1],
with each file in the rootfs tagged with "metacopy" and "redirect" xattr.

The source rootfs is from the docker image of tensorflow [2].

The erofs images are built with mkfs.erofs with support for sparse file
added [3].

[1]
https://lore.kernel.org/linux-fsdevel/5fb32a1297821040edd8c19ce796fc0540101653.camel@redhat.com/
[2]
https://hub.docker.com/layers/tensorflow/tensorflow/2.10.0/images/sha256-7f9f23ce2473eb52d17fe1b465c79c3a3604047343e23acc036296f512071bc9?context=explore
[3]
https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/commit/?h=experimental&id=7c49e8b195ad90f6ca9dfccce9f6e3e39a8676f6



Image size
===========
6.4M large.composefs
5.7M large.composefs.w/o.digest (w/o --compute-digest)
6.2M large.erofs
5.2M large.erofs.T0 (with -T0, i.e. w/o nanosecond timestamp)
1.7M large.squashfs
5.8M large.squashfs.uncompressed (with -noI -noD -noF -noX)

(large.erofs.T0 is built without nanosecond timestamp, so that we get
smaller disk inode size (same with squashfs).)


Runtime Perf
=============

The "uncached" column is tested with:
hyperfine -p "echo 3 > /proc/sys/vm/drop_caches" "ls -lR $MNTPOINT"


While the "cached" column is tested with:
hyperfine -w 1 "ls -lR $MNTPOINT"


erofs and squashfs are mounted with loopback device.


				  | uncached(ms)| cached(ms)
----------------------------------|-------------|-----------
composefs (with digest)		  | 326		| 135
erofs (w/o -T0)			  | 264		| 172
erofs (w/o -T0) + overlayfs	  | 651		| 238
squashfs (compressed)		  | 538		| 211
squashfs (compressed) + overlayfs | 968		| 302
squashfs (uncompressed)		  | 406		| 172
squashfs (uncompressed)+overlayfs | 833		| 264





Following on are the detailed test statistics:

composefs(with digest) - uncached
Benchmark 1: ls -lR /mnt/cps
  Time (mean ± σ):     326.0 ms ±   6.1 ms    [User: 64.1 ms, System:
126.0 ms]
  Range (min … max):   316.3 ms … 334.5 ms    10 runs

composefs(with digest) - cached
Benchmark 1: ls -lR /mnt/cps
  Time (mean ± σ):     135.5 ms ±   4.1 ms    [User: 59.9 ms, System:
74.8 ms]
  Range (min … max):   129.5 ms … 144.8 ms    21 runs



loopback erofs(w/o -T0) - uncached
Benchmark 1: ls -lR /mnt/bootstrap
  Time (mean ± σ):     264.1 ms ±   2.1 ms    [User: 66.7 ms, System:
166.2 ms]
  Range (min … max):   261.0 ms … 267.5 ms    10 runs

loopback erofs(w/o -T0) - cached
Benchmark 1: ls -lR /mnt/bootstrap
  Time (mean ± σ):     172.3 ms ±   3.9 ms    [User: 59.3 ms, System:
112.2 ms]
  Range (min … max):   166.5 ms … 180.8 ms    17 runs


overlayfs + loopback erofs(w/o -T0) - uncached
Benchmark 1: ls -lR /mnt/ovl/mntdir
  Time (mean ± σ):     651.8 ms ±   8.8 ms    [User: 74.2 ms, System:
391.1 ms]
  Range (min … max):   632.6 ms … 665.8 ms    10 runs

overlayfs + loopback erofs(w/o -T0) - cached
Benchmark 1: ls -lR /mnt/ovl/mntdir
  Time (mean ± σ):     238.1 ms ±   7.7 ms    [User: 63.4 ms, System:
173.4 ms]
  Range (min … max):   226.7 ms … 251.2 ms    12 runs



loopback squashfs (compressed) - uncached
Benchmark 1: ls -lR /mnt/squashfs-compressed/bootstrap
  Time (mean ± σ):     538.4 ms ±   2.4 ms    [User: 67.8 ms, System:
410.3 ms]
  Range (min … max):   535.6 ms … 543.6 ms    10 runs

loopback squashfs (compressed) - cached
Benchmark 1: ls -lR /mnt/squashfs-compressed/bootstrap
  Time (mean ± σ):     211.3 ms ±   2.9 ms    [User: 61.2 ms, System:
141.3 ms]
  Range (min … max):   206.5 ms … 216.1 ms    13 runs


overlayfs + loopback squashfs (compressed) - uncached
Benchmark 1: ls -lR /mnt/squashfs-compressed/mntdir
  Time (mean ± σ):     968.0 ms ±   7.1 ms    [User: 78.4 ms, System:
675.7 ms]
  Range (min … max):   956.4 ms … 977.2 ms    10 runs

overlayfs + loopback squashfs (compressed) - cached
Benchmark 1: ls -lR /mnt/squashfs-compressed/mntdir
  Time (mean ± σ):     302.6 ms ±   6.7 ms    [User: 67.3 ms, System:
225.6 ms]
  Range (min … max):   292.4 ms … 312.3 ms    10 runs



loopback squashfs (uncompressed) - uncached
Benchmark 1: ls -lR /mnt/squashfs-uncompressed/bootstrap
  Time (mean ± σ):     406.6 ms ±   3.9 ms    [User: 69.2 ms, System:
273.3 ms]
  Range (min … max):   400.3 ms … 414.2 ms    10 runs

loopback squashfs (uncompressed) - cached
Benchmark 1: ls -lR /mnt/squashfs-uncompressed/bootstrap
  Time (mean ± σ):     172.8 ms ±   3.2 ms    [User: 61.9 ms, System:
101.6 ms]
  Range (min … max):   168.6 ms … 178.9 ms    16 runs


overlayfs + loopback squashfs (uncompressed) - uncached
Benchmark 1: ls -lR /mnt/squashfs-uncompressed/mntdir
  Time (mean ± σ):     833.4 ms ±   8.0 ms    [User: 74.1 ms, System:
539.7 ms]
  Range (min … max):   820.7 ms … 844.3 ms    10 runs

overlayfs + loopback squashfs (uncompressed) - cached
Benchmark 1: ls -lR /mnt/squashfs-uncompressed/mntdir
  Time (mean ± σ):     264.4 ms ±   7.2 ms    [User: 68.2 ms, System:
186.2 ms]
  Range (min … max):   256.5 ms … 277.1 ms    10 runs



-- 
Thanks,
Jingbo

  reply	other threads:[~2023-02-01  4:28 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-20 15:23 [PATCH v3 0/6] Composefs: an opportunistically sharing verified image filesystem Alexander Larsson
2023-01-20 15:23 ` [PATCH v3 1/6] fsverity: Export fsverity_get_digest Alexander Larsson
2023-01-20 15:23 ` [PATCH v3 2/6] composefs: Add on-disk layout header Alexander Larsson
2023-01-20 15:23 ` [PATCH v3 3/6] composefs: Add descriptor parsing code Alexander Larsson
2023-01-20 15:23 ` [PATCH v3 4/6] composefs: Add filesystem implementation Alexander Larsson
2023-01-20 15:23 ` [PATCH v3 5/6] composefs: Add documentation Alexander Larsson
2023-01-21  2:19   ` Bagas Sanjaya
2023-01-20 15:23 ` [PATCH v3 6/6] composefs: Add kconfig and build support Alexander Larsson
2023-01-20 19:44 ` [PATCH v3 0/6] Composefs: an opportunistically sharing verified image filesystem Amir Goldstein
2023-01-20 22:18   ` Giuseppe Scrivano
2023-01-21  3:08     ` Gao Xiang
2023-01-21 16:19       ` Giuseppe Scrivano
2023-01-21 17:15         ` Gao Xiang
2023-01-21 22:34           ` Giuseppe Scrivano
2023-01-22  0:39             ` Gao Xiang
2023-01-22  9:01               ` Giuseppe Scrivano
2023-01-22  9:32                 ` Giuseppe Scrivano
2023-01-24  0:08                   ` Gao Xiang
2023-01-21 10:57     ` Amir Goldstein
2023-01-21 15:01       ` Giuseppe Scrivano
2023-01-21 15:54         ` Amir Goldstein
2023-01-21 16:26           ` Gao Xiang
2023-01-23 17:56   ` Alexander Larsson
2023-01-23 23:59     ` Gao Xiang
2023-01-24  3:24     ` Amir Goldstein
2023-01-24 13:10       ` Alexander Larsson
2023-01-24 14:40         ` Gao Xiang
2023-01-24 19:06         ` Amir Goldstein
2023-01-25  4:18           ` Dave Chinner
2023-01-25  8:32             ` Amir Goldstein
2023-01-25 10:08               ` Alexander Larsson
2023-01-25 10:43                 ` Amir Goldstein
2023-01-25 10:39               ` Giuseppe Scrivano
2023-01-25 11:17                 ` Amir Goldstein
2023-01-25 12:30                   ` Giuseppe Scrivano
2023-01-25 12:46                     ` Amir Goldstein
2023-01-25 13:10                       ` Giuseppe Scrivano
2023-01-25 18:07                         ` Amir Goldstein
2023-01-25 19:45                           ` Giuseppe Scrivano
2023-01-25 20:23                             ` Amir Goldstein
2023-01-25 20:29                               ` Amir Goldstein
2023-01-26  5:26                                 ` userns mount and metacopy redirects (Was: Re: [PATCH v3 0/6] Composefs: an opportunistically sharing verified image filesystem) Amir Goldstein
2023-01-26  8:22                                   ` Christian Brauner
2023-01-27 15:57                               ` [PATCH v3 0/6] Composefs: an opportunistically sharing verified image filesystem Vivek Goyal
2023-01-25 15:24                       ` Christian Brauner
2023-01-25 16:05                         ` Giuseppe Scrivano
2023-01-25  9:37           ` Alexander Larsson
2023-01-25 10:05             ` Gao Xiang
2023-01-25 10:15               ` Alexander Larsson
2023-01-27 10:24                 ` Gao Xiang
2023-02-01  4:28                   ` Jingbo Xu [this message]
2023-02-01  7:44                     ` Amir Goldstein
2023-02-01  8:59                       ` Jingbo Xu
2023-02-01  9:52                         ` Alexander Larsson
2023-02-01 12:39                           ` Jingbo Xu
2023-02-01  9:46                     ` Alexander Larsson
2023-02-01 10:01                       ` Gao Xiang
2023-02-01 11:22                         ` Gao Xiang
2023-02-02  6:37                           ` Amir Goldstein
2023-02-02  7:17                             ` Gao Xiang
2023-02-02  7:37                               ` Gao Xiang
2023-02-03 11:32                                 ` Alexander Larsson
2023-02-03 12:46                                   ` Amir Goldstein
2023-02-03 15:09                                     ` Gao Xiang
2023-02-05 19:06                                       ` Amir Goldstein
2023-02-06  7:59                                         ` Amir Goldstein
2023-02-06 10:35                                         ` Miklos Szeredi
2023-02-06 13:30                                           ` Amir Goldstein
2023-02-06 16:34                                             ` Miklos Szeredi
2023-02-06 17:16                                               ` Amir Goldstein
2023-02-06 18:17                                                 ` Amir Goldstein
2023-02-06 19:32                                                 ` Miklos Szeredi
2023-02-06 20:06                                                   ` Amir Goldstein
2023-02-07  8:12                                                     ` Alexander Larsson
2023-04-03 19:00                                                 ` Lazy lowerdata lookup and data-only layers (Was: Re: Composefs:) Amir Goldstein
2023-04-11 15:50                                                   ` Miklos Szeredi
2023-04-12 14:06                                                     ` Amir Goldstein
2023-04-12 14:20                                                       ` Miklos Szeredi
2023-04-12 15:41                                                         ` Amir Goldstein
2023-02-06 12:51                                         ` [PATCH v3 0/6] Composefs: an opportunistically sharing verified image filesystem Alexander Larsson
2023-02-07  8:12                                         ` Jingbo Xu
2023-02-06 12:43                                     ` Alexander Larsson
2023-02-06 13:27                                       ` Gao Xiang
2023-02-06 15:31                                         ` Alexander Larsson
2023-02-01 12:06                       ` Jingbo Xu
2023-02-02  4:57                       ` Jingbo Xu
2023-02-02  4:59                         ` Jingbo Xu

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=51d9d1b3-2b2a-9b58-2f7f-f3a56c9e04ac@linux.alibaba.com \
    --to=jefflexu@linux.alibaba.com \
    --cc=alexl@redhat.com \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=david@fromorbit.com \
    --cc=gscrivan@redhat.com \
    --cc=hsiangkao@linux.alibaba.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=vgoyal@redhat.com \
    --cc=viro@zeniv.linux.org.uk \
    /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.