2016-04-12 12 views
2

https://github.com/libhugetlbfs/libhugetlbfs/blob/master/HOWTO numaralı belgede yer alan kılavuzu izleyerek büyük sayfalarla metin ve veri segmentini yedekleme imkanını araştırıyorum.Metin ve veri bölümleri için devasa sayfalar kullanımı

Uygulamayı "-B/usr/share/libhugetlbfs -Wl, - hugetlbfs-align" ekleyerek önerildiği şekilde yeniden bağladım ve uygulamayı "hugectl --text --data --heap --bss" ile başlattı/yol// benim/uygulama" olarak ayarlayın.

Ancak, veri ve metin bölümlerinin gerçekten de hugetlbfs dosya sistemindeki dosyalara kopyalanıp kopyalanmadığını nasıl doğrulayacağımı bilmiyorum.

/proc/{pid}/maps seçeneğine bakıldığında, devasa sayfaların yığın için kullanıldığı, ancak ilk iki adres aralığının uygulamaya eşlendiği, ancak büyük sayfa dosya sistemi olmadığı için metin ve veri bölümleri için kullanılmadığı görülebilir. .

Anlayışım doğru mu? Aslında, büyük sayfaların/proc/{pid}/maps adresindeki yığınlar için de kullanıldığını düşündüğümden şüpheliyim.

Verilerin ve metin bölümlerinin devasa sayfalarda yedeklenip desteklenmediğini nasıl doğrulamalıyım? Veri ve metin bölümlerinin başarılı olup olmadığını ancak nasıl doğrulanacağını hugetlbfs dosya sistemine kopyalayacağımı biliyorum.

Teşekkürler! Diğer bilgiler arasında -/- Proc/{PID}/haritalar

arasında

çıkış

00400000-00d2c000 r-xp 00000000 fd:02 46153351 /path/to/my/application 

00f2b000-00fa3000 rw-p 0092b000 fd:02 46153351 /path/to/my/application 

00fa3000-00fbb000 rw-p 00000000 00:00 0 

02a0c000-02a2d000 rw-p 00000000 00:00 0 [heap] 

40000000-80000000 rw-p 00000000 00:15 2476090 /dev/hugepages-1G/libhugetlbfs.tmp.nS7exn (deleted) 

cevap

1

onay

/proc/$pid/numa_maps 

izin verilen bir işlem tarafından kullanılan her bir bellek alanı hakkında bilgi içerir kararlılık Bu sayfalar için düğümler kullanıldı. Eğer HUGETLB_DEBUG = 1 değişken, bu size yararlı bilgiler sürü söyleyecektir ayarlarsanız formar için

+1

Ayrıca bkz/proc/$ pid/smaps hazırlayın anonim devasa sayfalar. BSS, yığın gibi anonim bir eşlemedir ve yeterince uyumlu olan eşleştirmeler için saydam kucaklamaları kullanır. –

1

http://linux.die.net/man/5/numa_maps görüyoruz. [Zupa

libhugetlbfs: göründüğü gibi başarılı olursa 0x864 < 0xffffffffffffffff

:

BİLGİ

: Segment 2'nin hizalanmış memsz çok küçük Bunlardan biri şudur 154297 ] BİLGİ: Bölüm 0 (PhDr 2): 0x400000-0x400864 (filesz = 0x864) (prot = 0x5)

libhugetlbfs [zupa: 154.297] BİLGİ: Bölüm 1 (PhDr 3): 0x600868-0x600af8 (filesz = 0x27c() Prot = 0x3)

libhugetlbfs [zupa: 154.297]: DEBUG: Toplam memsz = 0xaf4, en büyük parça memsz = 0x864

libhugetlbfs [zupa: 154.297] BİLGİ: versiyon libhugetlbfs: 2.16 (modifiye)

libhugetlbfs [zupa: 154951]: BİLGİ: 0x2aaaaac00000 adresindeki hugeseg eşlendi. 0x400000'den 0x864 bayt ve 0'dan fazla bayt kopyalanıyor ...yapılan

libhugetlbfs [zupa: 154.297] BİLGİ: başarılı hazırlayın

libhugetlbfs [zupa: 154952] BİLGİ: 0x2aaaaac00000 eşleştirilir hugeseg.

libhugetlbfs yapılan kopyalama 0x27c bayt ve 0x600868 0 ekstra bayt ... [zupa: 154297]: INFO: dahil olmak üzere her haritalama ile ilgili ayrıntılı bilgi için başarılı

İlgili konular