Skip to content

Instantly share code, notes, and snippets.

@jmftrindade
Last active November 3, 2021 13:51
Show Gist options
  • Save jmftrindade/90bc93c6b3b1bceebba6fcaad6d31689 to your computer and use it in GitHub Desktop.
Save jmftrindade/90bc93c6b3b1bceebba6fcaad6d31689 to your computer and use it in GitHub Desktop.
disk related tasks

Total disk usage

$ df -h --total
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 188G     0  188G   0% /dev
tmpfs                    188G     0  188G   0% /dev/shm
tmpfs                    188G  2.5M  188G   1% /run
tmpfs                    188G     0  188G   0% /sys/fs/cgroup
/dev/mapper/fedora-root   15G   12G  3.1G  80% /
tmpfs                    188G  4.0K  188G   1% /tmp
/dev/sda2                976M  143M  767M  16% /boot
/dev/sda1                200M   11M  190M   6% /boot/efi
/dev/pmem12              970G  193G  728G  21% /mnt/pmem12
tmpfs                     38G     0   38G   0% /run/user/0
total                    2.0T  205G  1.7T  11% -

Top 20 paths with highest usage

$ du -a /root 2>/dev/null | sort -n -r | head -n 20
8925576 /root
4089604 /root/tgdb
3073500 /root/tgdb/scripts
2775460 /root/tgdb-tools/Tapir-Meta
2775460 /root/tgdb-tools
2765552 /root/tgdb/scripts/100000000
2084780 /root/tgdb-tools/Tapir-Meta/tapir
1599188 /root/tgdb-tools/Tapir-Meta/tapir/build
690656  /root/tgdb-tools/Tapir-Meta/.git
690284  /root/tgdb-tools/Tapir-Meta/.git/modules/tapir
690284  /root/tgdb-tools/Tapir-Meta/.git/modules
682552  /root/tgdb-tools/Tapir-Meta/tapir/build/lib
654460  /root/tgdb/graphviz
549776  /root/tgdb-tools/Tapir-Meta/tapir/build/bin
461540  /root/tgdb-tools/Tapir-Meta/.git/modules/tapir/objects/pack
461540  /root/tgdb-tools/Tapir-Meta/.git/modules/tapir/objects
442492  /root/tgdb_clean
433596  /root/tgdb_clean/build
416780  /root/tgdb-tools/Tapir-Meta/.git/modules/tapir/objects/pack/pack-f8a2d064ef12eb81ae75b8d373139dfa8642167c.pack
394772  /root/tgdb_actuallyclean

Usage for current directory

$ sudo apt install ncdu  # in case you don't have it yet
$ ncdu

Largest files under <path> with sizes printed in GiB, and with at least 5GiB in size

$ path=/data/tgdb/temporal_nets/
$ du -h -a -BG -t5G $path 2>/dev/null
16G     /data/tgdb/temporal_nets/reddit-reply/temporal-reddit-reply.txt
16G     /data/tgdb/temporal_nets/reddit-reply
12G     /data/tgdb/temporal_nets/generated/500000000edges-1000000vertices.txt.ligra
24G     /data/tgdb/temporal_nets/generated/1000000000edges-1000000vertices.txt.ligra
52G     /data/tgdb/temporal_nets/generated
9G      /data/tgdb/temporal_nets/twitter-cache/cluster1.6.snap.snap2.ligra
12G     /data/tgdb/temporal_nets/twitter-cache
15G     /data/tgdb/temporal_nets/transportation
144G    /data/tgdb/temporal_nets/netflow
244G    /data/tgdb/temporal_nets/

Show all attached block devices

$ lsblk -o KNAME,TYPE,SIZE,MODEL

Verify filesystem on a device

$ file -s /dev/nvme0n1
/dev/nvme0n1: DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x3ff,254,63), startsector 1, 732585167 sectors, extended partition table (last)

$ file -s /dev/sdb
/dev/sdb: Linux rev 1.0 ext4 filesystem data, UUID=972f53e5-3060-4ee5-9a96-4beaebc0884a (needs journal recovery) (extents) (64bit) (large files) (huge files)

$ file -s /dev/pmem12
/dev/pmem12: Linux rev 1.0 ext4 filesystem data, UUID=3eda76ed-96bd-43ee-bdc9-e12215c8f5d7 (needs journal recovery) (extents) (64bit) (large files) (huge files)

Mount new disk that hasn't been formatted yet

$ mkfs.ext4 /dev/sdb
$ mkdir /data
$ mount -t auto /dev/sdb /data

Or with a NVMe disk on the Intel box that already had some partitions, here's what I had to do to reformat it as a single partition:

$ parted -a optimal /dev/nvme0n1 mklabel gpt
$ parted -a optimal /dev/nvme0n1 mkpart primary ext4 0% 100%
$ sleep 4s  # just in case; saw it elsewhere
$ mkfs.ext4 /dev/nvme0n1
$ mkdir /data-nvme_ssd
$ mount -t auto /dev/nvme0n1

Mount disks that have already been formatted

# The SSD mounted to data directory in the Intel box
$ mount -t auto /dev/sdb /data

# The PMEM devices (Fedora box)
$ mount -o dax /dev/pmem12 /mnt/pmem12
$ mount -o dax /dev/pmem13 /mnt/pmem13

# The PMEM devices (Ubuntu box
$ mount -o dax /dev/pmem0 /mnt/pmem0
$ mount -o dax /dev/pmem1 /mnt/pmem1

# The NVMe disk (Ubuntu box, after I reformatted it; see earlier section)
$ mount -t auto /dev/nvme0n1 /data-nvme_ssd

Mount entries on fstab

# Joana: mount /data and PMEM devices
/dev/sdb /data ext4 defaults 0 0
# Fedora box pmem
/dev/pmem12 /mnt/pmem12 ext4 dax,nofail 0 0
/dev/pmem13 /mnt/pmem13 ext4 dax,nofail 0 0

Show devices mounted, together with filesystem and UUID info

$ lsblk -f

NAME            FSTYPE      LABEL UUID                                   MOUNTPOINT
sda
├─sda1          vfat              3071-8EC1                              /boot/efi
├─sda2          ext4              7407ff33-ce58-488b-8a8a-74407e83637d   /boot
└─sda3          LVM2_member       LzZVcY-2YAL-uGq0-OjFa-o1ls-3Dst-kdOuB0
  ├─fedora-root xfs               71303548-f791-4e56-9c21-9b25a396ab50   /
  └─fedora-swap swap              7bed29dc-a818-4bc5-ab06-5ac454bb44e9   [SWAP]
sdb             ext4              972f53e5-3060-4ee5-9a96-4beaebc0884a   /data
nvme0n1
└─nvme0n1p1     ext4              93ab30d3-0b46-4dd4-80b0-d80ed847d250
pmem12          ext4              3eda76ed-96bd-43ee-bdc9-e12215c8f5d7   /mnt/pmem12
pmem13          ext4              de6a367b-d43a-4bb3-bdbb-61192fd631a6   /mnt/pmem13

List specs of a disk

$ fdisk -l /dev/pmem12

Disk /dev/pmem12: 2.9 TiB, 3183575302144 bytes, 6217920512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

$ fdisk -l /dev/sdb

Disk /dev/sdb: 447.1 GiB, 480113590272 bytes, 937721856 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

# Another way, using parted:
$ parted /dev/nvme0n1 print

Model: NVMe Device (nvme)
Disk /dev/nvme0n1: 375GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  16.0GB  16.0GB  ext4         primary

NUMA and PMEM related commands

https://pmem.io/2018/05/15/using_persistent_memory_devices_with_the_linux_device_mapper.html https://pmem.io/2020/01/20/memkind-dax-kmem.html

Show NUMA nodes configuration:

$ numactl -H

available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
node 0 size: 192112 MB
node 0 free: 191294 MB
node 1 cpus: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
node 1 size: 191993 MB
node 1 free: 191032 MB
node distances:
node   0   1
  0:  10  21
  1:  21  10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment