WIP

购买了Google Suite帐号以后,我的备份需求大部分迁移到了Google Drive上,以下是一些与GCP Virtual Instance有关的性能测试

  • 机器类型 : GCP f1-micro (1 vCPU, 617 MiB 内存)
  • 地区: us-west-1
  • 磁盘大小: 30 GiB HDD
  • Swap:2048MiB

1. Rclone Mount Flags

Rclone Mount Config

rclone mount gd: /mnt/gdrive  --buffer-size 1G --vfs-read-chunk-size 256M --vfs-read-chunk-size-limit 2G  --allow-non-empty --allow-other   --dir-cache-time 12h  >/dev/null 2>&1 &

后来发现这套mount config是针对mount plex share这种只读文件使用的,对于只写不读的情况应该更改另外两个flag

rclone mount --config ~/.config/mountconfig.conf [Mountname] [LOCATION] --drive-chunk-size 32M --buffer-size 256M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-mode writes --vfs-cache-max-age 0h0m10s --allow-non-empty --allow-other --dir-cache-time 12h > /dev/null 2>&1 &

根据这个github issue, –drive-chunk-size 会影响传输速度,default 8M其实已经够用了,这里调到32M,其他几个flag对读取有帮助,对写入帮助不大

2. Swap and Rclone Mount

介于GCP小磁盘写入实在是可怜,持续写入到Rclone Mount的过程中容易出现Buffer不足Swap导致封疯狂掉速的情况。根据我的实际使用,在f1-micro机器上,连续下载2个5G左右文件后,写入速度会显著下降。此时打开htop,看到已经有100 MiB左右的Swap使用,此时下载速度在20 MiB左右。如果继续持续写入,会导致速度下降到10 MiB。 目前没有搞明白原因,个人估计有两种可能

  1. 持续写入达到GCP HDD IO限制,磁盘写入加上rclone mount上传导致GCP开始限制IO
  2. 8线程下载的下载程序会打开8个fd,每一个fd设置的drive-chunk-size是32M,一共会占用256M内存,此时似乎有可能导致rclone开始swap(不能确定)。当rclone开始swap时,性能剧烈下降

测试1,可以在f1-micro下将HDD容量提升或者换成SSD做测试,看看是否下载速度仍旧很慢,如果还是慢,说明GCP的hdd IO限制对程序其实没有太大影响

测试2,可以将f1-micro换位n1-1或者e2-1 instance,前者拥有1.7 GiB 内存(非共享vCPU) 后者拥有 2 GiB 内存(2 共享 vCPU),测试rclone 持续负载下的表现

将f1-micro升级到e2-small(2 vCPU / 0.5 of an actual core 2 GiB内存后) 性能有所提升,关闭swap,下载速度大约在22M左右,在us-west1 上,一个25GB HDD的实例月费为$13.23。相比之下,(1 vCPU / 0.5 of an core 1.7 GiB内存)的g1-small定价 $14.80,e2-small还多出0.2 GiB内存,性价比高。

将f1-micro升级到e2-medium后,月费变为25.27刀