我正在使用Ubuntu Xenial,zfs和PostgreSQL 9.5以及所有可用的atm更新。 所有的testing都在EC2 m4.xlarge(8GB RAM)和表格大小〜4GB上完成。 PostgreSQL effective_cache_size = 6GB。
第一个版本:primarycache =元数据,arc_max_size = 1GB(testing4和6GB),arc_size =〜160mb,但Ubuntu不使用buff / cache进行顺序扫描(free -m表示buff / cache = 200MB,不增长)而是每次执行查询时从磁盘读取数据。 所以查询非常缓慢。
第二种情况:primarycache = all,arc_max_size = 4GB。 顺序读取被caching,但是无论何时更改数据库(Postgres从主服务器接收到更新),caching都将变为无效(我看到Postgres从磁盘读取数据)。
我做错了什么?
PS
cat /etc/modprobe.d/zfs.conf options zfs zfs_prefetch_disable=1 options zfs zfs_nocacheflush=1 options zfs zfs_arc_max=7073741824
我在zfs上学到的东西 – 讨论和实验期间:
ZFSconfiguration适用于我,甚至比ext4更快的seq读取:
我也设置ashift = 9,以获得更好的压缩,但它是在EC2 EBS无论如何默认。