# Sistema Operativo

---

# Filesystems

Comunes: 

* ext3
* ext4 (2008)
* XFS (SGI)
* ZFS (Sun, Solaris)
    * `zfs set recordsize=8K zp1/data`
* ReiserFS

---

# Filesystems  - Journal

Como PostgreSQL, mediante WAL, asegura consistencia de datos, tanto de ficheros
WAL como de *datafiles*, postgres no necesita sistemas de ficheros con
*journal*. De hecho, pueden perjudicar al rendimiento, especialmente si se
trata de journaling de metadatos.
[PostgreSQL WAL](http://www.postgresql.org/docs/9.3/static/wal-intro.html)

Opciones importantes:

* **Journaling**: 
    * data=writeback (recomendado)
    * data=ordered, data=journal
* noatime, nodiratime
* nodelalloc
* Barriers: Evitar cachés internas disco
    * barrier=1
    * ¿Deshabilitamos completamente write caché en el disco? 
        * `sudo hdparm -W 0 /dev/sda`

---

# Filesystems - mount options

    !bash
    $ cat /etc/fstab
    /dev/sda3 /pg/9.2/main  ext4  noatime,data=ordered,barrier=1 0 2
    /dev/sda2 /pg/9.2/main/pg_xlog  ext4  noatime,data=ordered,barrier=1 0 2


stats ram fs:

    !bash
    $ cat /etc/fstab
    # tmpfs para pg_stat
    tmpfs /pg/9.2/main/pg_stat_ram tmpfs defaults,noatime,size=128M,uid=105, 
          gid=114,mode=0700 0 0

    $ cat postgresql.conf | grep stats_temp_dir
    stats_temp_directory = 'pg_stat_ram'

