Belgelerine de yönergede , nginx belgelerine diyoraccess_log
Arabellek boyutu, bir disk dosyasına atomik yazma boyutunu aşmamalıdır.
Sistemimde bu boyutun ne olduğunu nasıl belirleyebilirim?
Belgelerine de yönergede , nginx belgelerine diyoraccess_log
Arabellek boyutu, bir disk dosyasına atomik yazma boyutunu aşmamalıdır.
Sistemimde bu boyutun ne olduğunu nasıl belirleyebilirim?
Yanıtlar:
geç olsun güç olmasın :)
hızlı cevap: "Çekirdek sürümü 3.14 veya daha yeni ise 2.147.479.552 bayt"
detaylı cevap:
Anladığım kadarıyla, bu yazma sistemiyle ilgilidir:
http://man7.org/linux/man-pages/man2/write.2.html
1) tüm POSIX sistemlerinin (linux, bsd, tüm unix) en fazla MAX_SSIZE bayt yazabileceği garanti edilir
POSIX.1'e göre, sayı SSIZE_MAX'tan büyükse, sonuç uygulama tanımlıdır; Linux'ta üst sınır için NOTLAR'a bakın.
# getconf SSIZE_MAX
32767
2) Linux 1,99 GiB'ye kadar yazılabileceğini garanti eder (ve linux çekirdek sürüm 3.14 ve daha yenisi için atomik işlemdir)
Linux'ta, write () (ve benzeri sistem çağrıları) en fazla 0x7ffff000 (2,147,479,552) bayt aktarır ve gerçekte aktarılan bayt sayısını döndürür. (Bu hem 32 bit hem de 64 bit sistemler için geçerlidir.)
Ama sadece linux çekirdeği 3.14'ten adil atomik işlem
POSIX.1-2008 / SUSv4 Bölüm XSI 2.9.7'ye göre ("Düzenli Dosya İşlemleriyle İş Parçacığı Etkileşimleri"):
Aşağıdaki işlevlerin tümü, normal dosyalar veya sembolik bağlantılar üzerinde çalışırken POSIX.1-2008'de belirtilen efektlerde birbirlerine göre atomik olacaktır: ...
Daha sonra listelenen API'ler arasında write () ve writev (2) bulunmaktadır. Ve iş parçacıkları (ve işlemler) arasında atomik olması gereken efektler arasında dosya ofseti güncellemeleri vardır. Ancak, 3.14 sürümünden önceki Linux'ta durum böyle değildi: açık dosya tanımını paylaşan iki işlem (bkz. Open (2)) aynı anda bir write () (veya writev (2)) gerçekleştirirse, I / O işlemleri, dosya ofsetini güncelleştirmeyle ilgili olarak atomik değildi, sonuç olarak iki işlemin veri çıkış blokları (yanlış) çakışabilir. Bu sorun Linux 3.14'te giderilmiştir.
Bu Superuser cevabının atomik yazma boyutunun iyi bir tanımı vardı.
Bu, en azından atomik okuma / yazma boyutu olan donanım sektörünün büyüklüğü kadar büyüktür.