Qual é a diferença entre as opções de montagem sync
e de async
montagem do ponto de vista do usuário final? O sistema de arquivos montado com uma dessas opções funciona mais rápido do que se montado com outra? Qual opção é a padrão, se nenhuma delas estiver definida?
man mount
diz que essa sync
opção pode reduzir a vida útil da memória flash, mas pode ser obsoleta pela sabedoria convencional. Mesmo assim este me preocupa um pouco, porque o meu disco rígido principal, onde partições /
e /home
são colocados, é a unidade SSD.
Ubuntu Installer (14,04) não especificou sync
nem async
opção para /
partição, mas criaram async
para /home
pela opção defaults
. Aqui está o meu /etc/fstab
, eu adicionei algumas linhas adicionais (veja o comentário), mas não mudei nada nas linhas feitas pelo instalador:
# / was on /dev/sda2 during installation
UUID=7e4f7654-3143-4fe7-8ced-445b0dc5b742 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=d29541fc-adfa-4637-936e-b5b9dbb0ba67 /home ext4 defaults 0 2
# swap was on /dev/sda4 during installation
UUID=f9b53b49-94bc-4d8c-918d-809c9cefe79f none swap sw 0 0
# here goes part written by me:
# /mnt/storage
UUID=4e04381d-8d01-4282-a56f-358ea299326e /mnt/storage ext4 defaults 0 2
# Windows C: /dev/sda1
UUID=2EF64975F6493DF9 /mnt/win_c ntfs auto,umask=0222,ro 0 0
# Windows D: /dev/sdb1
UUID=50C40C08C40BEED2 /mnt/win_d ntfs auto,umask=0222,ro 0 0
Então, se o meu /dev/sda
é SSD, que eu deveria - por causa da redução do desgaste - add async
opção para /
e /home
sistemas de arquivos? Devo definir sync
ou async
optar por partições adicionais definidas por mim /etc/fstab
? Qual é a abordagem recomendada para unidades SSD e HDD?
Respostas:
async
é o oposto desync
, que raramente é usado.async
é o padrão, você não precisa especificar isso explicitamente.A opção
sync
significa que todas as alterações no sistema de arquivos correspondente são imediatamente liberadas para o disco; as respectivas operações de gravação estão sendo aguardadas. Para acionamentos mecânicos, isso significa uma grande desaceleração, pois o sistema precisa mover as cabeças do disco para a posição correta; comsync
o processo userland, é necessário aguardar a conclusão da operação. Por outro lado,async
o sistema armazena em buffer a operação de gravação e otimiza as gravações reais; Enquanto isso, em vez de ser bloqueado, o processo na terra do usuário continua em execução. (Se algo der errado,close()
retornará-1
comerrno = EIO
.)SSD: Não sei a rapidez com que a memória SSD é comparada à memória RAM, mas certamente não é mais rápida; portanto,
sync
provavelmente haverá uma penalidade no desempenho, embora não seja tão ruim quanto nas unidades de disco mecânicas. Ao longo da vida, a sabedoria ainda é válida, já que escrever em um SSD "muito" o desgasta. O pior cenário seria um processo que faz muitas alterações no mesmo local; comsync
cada um deles atinge o SSD, enquanto comasync
(o padrão) o SSD não verá a maioria deles devido ao buffer do kernel.No final do dia, não se preocupe
sync
, é mais provável que você esteja bemasync
.fonte
sync
oufsync
oufdatasync
syscalls em uma sincronização montadas fs?async
. No entanto, se esse é um problema, entãosync
não é a resposta - a penalidade de desempenhosync
é simplesmente proibitiva.Palavras de cautela: usar a opção de montagem 'async' pode não ser a melhor ideia se você tiver uma montagem que está sendo gravada constantemente (por exemplo, registros valiosos, gravações de câmeras de segurança etc.) e não estiver protegido contra quedas de energia repentinas . Isso pode resultar na falta de registros ou dados incompletos (inúteis). Exemplo não tão inteligente: imagine um ladrão entrando em uma loja e cortando imediatamente o cabo de alimentação da câmera. A gravação de vídeo do arrombamento foi gravada, mas pode não ter sido descarregada / sincronizada com o disco, pois ele (ou partes dele) pode ter sido armazenado em buffer na memória, perdendo assim quando a câmera perde energia.
fonte