CCoW: İş Yüklerindeki Mekansal Yerelliği Göz önünde bulundurarak Yazma Üzerine Kopyalamayı Optimize Etme Bölüm 3

Apr 02, 2024

3. CCoW Tasarımı

Bu bölümde ilk olarak yazma sırasında kopyalamayı geliştirmenin ardındaki motivasyonumuzu tanıtacağız ve kapsama dayalı yazma sırasında kopyalamanın (CCoW) temel konseptini açıklayacağız. Daha sonra CCoW'un farklı senaryolar altında konumu nasıl yakaladığını ve konumu düşük bir maliyetle yakalamak için optimizasyonu açıklıyoruz.

Bellek, insanların bilgiyi edinme, saklama ve geri çağırma yeteneğidir. İnsanların anıları da farklı senaryolarda farklılık gösterecektir. Bu yazıda farklı senaryolarda hafıza arasındaki ilişkiyi inceleyeceğiz.

Bunlardan ilki öğrenme senaryosudur. Öğrenme, insanın bilgi ve beceri kazanmasında önemli bir araçtır. Öğrenme sürecinde hafıza hayati bir rol oynar. Güçlü bir hafızanız varsa, yeni bilgilere daha hızlı hakim olabilir ve öğrenilen bilgileri daha kolay akılda tutabilirsiniz. Bu nedenle, öğrenme senaryolarında hafızayı daha iyi geliştirmek için düşüncemizi net ve odaklanmış tutmamız gerekir.

İkincisi turizm sahnesidir. Seyahat etmek farklı kültürleri ve ortamları deneyimlememize olanak tanıyarak ufkumuzu büyük ölçüde zenginleştirir. Seyahat sırasında coğrafi yerleri, insanları, gelenekleri ve diğer bilgileri hatırlayarak zengin kültürel bilgiler edinebiliriz. Bu nedenle seyahat sahnesinde hafızamızı daha iyi geliştirmek için dikkatli gözlemlememiz ve aktif olarak deneyimlememiz gerekiyor.

Bir kez daha, bu bir çalışma sahnesi. İş yerinde veriler, kişiler, görevler, planlar vb. gibi büyük miktarda bilgiyi işlememiz gerekir. Hafızamız yeterince güçlü değilse, iş verimliliğimizi ve başarılarımızı etkileyecektir. Bu nedenle, çalışma senaryolarında, kayıt ve düzenleme konusunda iyi bir iş yapmamız ve "bilgi bağlantısı" kapsamını mümkün olduğunca daraltmaya çalışmamız gerekiyor. Bu şekilde hafızamızı daha iyi geliştirebiliriz.

Son olarak hayat sahneleri var. İnsanların adresler, telefon numaraları, günlük görevler gibi pek çok günlük şeyi hatırlaması gerekir. Hafızamız yeterince iyi değilse hayatta birçok sorun ortaya çıkar. Bu nedenle yaşam sahnelerinde hafıza yeteneğimizi çalıştırmamız gerekir. Çağrışımsal düşünmeyi geliştirerek ve sessizce tekrarlayarak hafızamızı geliştirebiliriz.

Özetlemek gerekirse, farklı senaryolardaki hafıza birbiriyle yakından ilişkilidir. Bilinçli uygulama ve konsantrasyon yoluyla hafızamızı geliştirebilir ve çeşitli senaryolarda daha iyi performans elde edebiliriz. İyimser bir tavırla daha iyi bir yaşam ve kariyer peşinde koşalım. Belleği geliştirmemiz gerektiği görülebilir ve Cistanche Deserticola hafızayı önemli ölçüde geliştirebilir, çünkü Cistanche Deserticola aynı zamanda asetilkolin ve büyüme faktörlerinin seviyelerini arttırmak gibi nörotransmitterlerin dengesini de düzenleyebilir. Bu maddeler hafıza ve öğrenme için çok önemlidir. Ek olarak, Cistanche Deserticola kan akışını iyileştirebilir ve oksijen dağıtımını destekleyebilir, bu da beynin yeterli besin ve enerji almasını sağlayarak beyin canlılığını ve dayanıklılığını artırır.

improve working memory

Belleği geliştirmek için ekleri bil'e tıklayın

3.1. Motivasyon

Daha önce tartışıldığı gibi, yazarken kopyala mekanizması, modern işletim sistemlerinde sanal bellek özelliklerinin uygulanmasında önemli bir rol oynar. Ancak veri merkezlerinde yaygın olan modern bilgi işlem ortamlarında ve yoğun yazma gerektiren iş yüklerinde alan açısından avantajları azalmaktadır [21,22].

Depolama belleği (SCM) ve kalıcı bellek gibi gelişen bellek teknolojileri, bellek modülleri için artan veri yoğunluğunu mümkün kılarken veri birimi başına maliyeti düşürür.

Günümüzde terabayt ölçeğinde büyük miktarda belleğe sahip bir düğüm oluşturmak her zamankinden daha ucuz hale geldi. Ek olarak, bulut hizmeti sağlayıcıları, veri merkezlerindeki düğümlerin düşük bellek kullanımından muzdarip olduğunu ve belleğin %40-50'sini kullanılmadan bıraktığını bildirmiştir [23-26]. Bu durumda, performansın kritik olduğu sistemlerde performans için bellek alanını değiştirmek mümkün hale gelir [27]. Performans açısından avantajlar da azalmaktadır.

Yazma sırasında kopyalamanın performans avantajı, sayfa hatası işlemenin sıklığı ve performansı ile karakterize edilebilir. Bir alt süreç oluşturulurken tüm sayfalara yazma izni bırakılır. Doğruluk açısından bu kaçınılmazdır; ancak bu, çataldan sonra her yazma isteğinin yerine getirilmesinde sık sık sayfa hatalarına yol açar. Bu yazma sayfa hatası fırtınası yalnızca alt süreçlerde değil aynı zamanda ana süreçlerde de meydana gelir.

Daha da kötüsü, sayfa hatası işleme süresi yakın zamanda iyileşmedi ancak güvenlik nedenleriyle uzama eğiliminde. Geçmişte, çekirdek adres alanının tamamı kalıcı olarak kullanıcı işlem adres alanının bir kısmına eşleniyordu.

Bununla birlikte, bu adres alanı düzeni, kötü niyetli kullanıcı işlemlerinin, işlemcilerdeki spekülatif yürütmeden yararlanarak çekirdek adres alanındaki kritik verileri dolaylı olarak okumasına izin verir [28,29].

Bu tür kritik güvenlik açıklarını azaltmak için modern işletim sistemleri çekirdek sayfa tablosu izolasyonunu (KPTI) kullanır. Genel olarak, çekirdek adres alanının yalnızca sınırlı bir kısmı işlem adres alanına eşlenir ve çekirdek adres alanının geri kalanı, kesinti ve sistem çağrısı yönetimi sırasında dinamik olarak eşlenir ve eşlemeden çıkarılır. Buna, sistemin performansını önemli ölçüde düşürebilecek TLB temizleme de eşlik etmelidir.

Bu çalışmada, bellek referanslarının uzamsal yerelliğinden yararlanarak yazma üzerine kopyalama yükünü azaltmayı amaçlıyoruz. Şu anda, yazma üzerine kopyalama sayfa başına gerçekleşir ve her sayfa hatası oluştuğunda işletim sisteminin devreye girmesi gerekir. Temel fikrimiz, bellek erişimlerinin mekansal konumundan yararlanarak işletim sistemi katılımının sıklığını azaltmaktır. Bir sayfaya yazma için erişilirse, yakındaki sayfalara da kısa sürede yazma için erişilmesi muhtemeldir.

Bu nedenle, yazarken kopyalama işlemini yalnızca hatalı sayfa için değil, aynı zamanda yakındaki sayfalar için de birlikte gerçekleştirirsek (yani, yakındaki sayfaların ön kopyalamasını), sayfa hatasının işlenmesi sırasında yazarken kopyalamanın ek yükünü amorti edebiliriz. Ancak yakındaki tüm sayfaları her zaman körü körüne kopyalamamaya dikkat etmeliyiz.

Kopyalanan sayfaların daha sonra yazılması durumunda, ön kopya için oluşan masraflar geri ödenir. Ancak kopyalanan sayfalar daha sonra yazılmazsa, ön kopyalama yalnızca zaman ve yer açısından ekstra masraf doğurur.

ways to improve your memory

Bu nedenle, kopyalanacak uygun hedef sayfaları belirlemek çok önemlidir. Sayfa hatası işleme yükünü en aza indirmek için benzer yaklaşımlar kullanılmıştır. Linux, 'hata etrafında' özelliği olarak adlandırılan özelliği kullanır. Linux bir sayfa hatasını işlerken, hatalı sayfanın etrafındaki sayfalar için sayfa hatası işlemeyi başlatır [2]. Ancak bu özellik yalnızca dosya destekli bellek bölgelerine ilişkin okuma sayfası hatalarına uygulanır.

Önerilen fikrin anonim sayfalar için sayfa hataları yazmaya odaklandığı göz önüne alındığında, yaklaşımımızın hata etrafında düzeltme özelliğinden farklı olduğunu iddia edebiliriz. Kullanımını optimize etmek için birçok son teknoloji ürünü tasarım [12-17] önerilmiştir. işletim sistemindeki devasa sayfalar.

Bu sistemler, ortak olarak, büyük sayfalara dönüştürülecek en iyi aday sayfaları belirlemek ve etkili bir şekilde bu sayfalara yükselmek (yani temel sayfaları büyük bir sayfaya dönüştürmek) veya bu sayfalardan sıralamasını düşürmek (yani büyük bir sayfayı temel sayfalara dönüştürmek) için bir şema sunar. kocaman sayfalar.

Bununla birlikte, önerilen şemalardan bağımsız olarak, yazarken kopyalama, gerekirse büyük sayfayı temel sayfalara böldükten sonra yalnızca temel sayfa ayrıntı düzeyinde gerçekleştirilir. Bu nedenle, yazma sırasında kopyalama performans özellikleri, şeffaf büyük sayfa (THP) mekanizmasına sahip varsayılan Linux sistemiyle aynıdır. Buna karşılık, bizim önerdiğimiz şema, bellek erişimlerindeki yerellik derecesine göre farklı bir ayrıntı düzeyinde yazma üzerine kopyalama gerçekleştirmesi açısından benzersizdir.

3.2. Mekansal Lokalliğin Belirlenmesi

Önerilen planı gerçekleştirmek için iki zorlu konuyu dikkate almalıyız. İlk olarak, hedef sayfalar tam olarak ve zamanında belirlenmelidir, böylece ön kopyanın faydası en üst düzeye çıkarılırken ön kopyanın ek yükü en aza indirilir.

Bir sayfa bir yazar tarafından kopyalandıktan sonra, sayfa başka sayfa hatalarını tetiklemez. Bu, sistemin yazma erişimini optimize etme fırsatını kaybettiği anlamına gelir. Böylece sistem gelecekteki sayfa kullanımını öngörerek hangi sayfaların kopyalanıp hangilerinin kopyalanmayacağını belirleyebilmelidir. İkinci olarak, işletim sistemi performansın kritik olduğu bellek yönetimi alt sisteminde zaman harcayan işlemleri karşılayamayacağından, hedef sayfaların belirlenmesinin ek yükü düşük olmalıdır.

Bölüm 2'de tartışıldığı gibi, modern işletim sistemlerindeki birçok sanal bellek özelliği, yazma üzerine kopyalama mekanizmasını temel alır. Bu nedenle, genel uygulama yeterince verimli değilse, ek yük, optimize edilmiş yazma sırasında kopyalamanın avantajından kolayca daha ağır basabilir.

Bir sayfanın geleceğini tahmin etmek için öncelikle kullanıcı işlemlerine ait çatalların geçmişini topluyoruz. Özellikle işletim sistemi, her işlemin çağırdığı çatalların sayısını izler. Bir işlemin sayısının düşük olması, süreçten yararlanma fırsatının çok az olduğu ve işletim sisteminin bu işlem için yazma sayfası hatalarını tam olarak izlemesine gerek olmadığı anlamına gelir.

Bunun tersine, bir süreç fork sistem çağrısını bir eşikten daha fazla çağırdığında, sistem optimizasyon fırsatını bekleyebilir. Bu, bellek içi anlık görüntüler almak için periyodik olarak çatalları çağıran Redis'te veya birden fazla komut satırı komutunu çatallayan kabuk komut dosyasında gerçekleşir. Buna yanıt olarak sistem, süreç için sayfa hatalarını izlemeye başlar.

improve brain

Daha sonra, uygulamaların genel davranışının önemli ölçüde değişmediğini varsayarak, geçmişten optimizasyon fırsatını tahmin etmek için bir yöntem öneriyoruz. Bu amaçla süreç adres uzayını sabit boyutlu bölgelere bölüyoruz. Her bölge, her bitin bölgedeki bir sayfaya karşılık geldiği bir bitmap'i korur. Yeni doldurulmuş sanal bellek alanlarında (VMA'lar) olduğu gibi, tüm bitmap'ler temizlenmiş bir süreç oluşturulur. Bir parçanın veya VMA'nın tamamının eşlemesi kaldırıldığında, karşılık gelen adres aralığındaki bit eşlemleri de yayınlanır.

Bitmap yalnızca VMA'nın doldurulan kısımlarına ayrılır ve bir4 KB sayfa bilgisi bir bit halinde özetlenir. Bu nedenle, bitmap için alan ek yükü, doldurulan adres alanının yaklaşık %0.003'üdür. Başlangıçta, yazma işlemleri, yazma üzerine kopyalama yoluyla olduğu gibi işlenir.

İlgili bit eşlem girişinin ayarlandığı sayfa hatası işleyicisine bir yazma erişimi tuzaklanır. Zamanla, bitmap bölgeye erişimleri etkili bir şekilde yakalar ve biz de kapsama derecesini ölçebiliriz. Bir bölgenin kapsamı, bölgedeki tüm sayfalar içindeki yazılı sayfaların kopyalarının yüzdesi olarak aşağıdaki şekilde hesaplanır:

improve cognitive function

Bir sistemin 4 KB sayfa kullandığını ve adres alanının 2 MB'lık bölgelere bölündüğünü varsayalım.

Daha sonra her bölgede 512 4 KB sayfa bulunur. Yazmalarda 300 sayfa kopyalanırsa bölgenin kapsamı 300/512 × 100=58.6% olur. Bir bölgenin kapsamı ne kadar yüksekse, bölge ön kopyanın optimizasyon fırsatından o kadar fazla yararlanabilir. Bu kapsam bilgisi çatal üzerinde taşınır ve yakındaki sayfaların kopyalanmasının faydasını belirlemek için bir ölçüm olarak kullanılır.

Özellikle, eğer bir bellek bölgesi yüksek kapsama alanına sahipse, bölgedeki sayfaların sonunda kopyalanıp yazılması muhtemeldir. Bu nedenle bir sayfaya ilişkin sayfa yazma hatası işlenirken bölgedeki diğer sayfaların önceden kopyalanması faydalı olacaktır. Oysa kapsamın düşük olması durumunda sayfaların ön kopyalanmasında optimizasyon fırsatı azdır. Bu nedenle, sayfa hatası işleyicisi tarafından yalnızca hatalı sayfa kopyalanır ve yazılır.

Bundan böyle, makalenin geri kalanında bu şemayı kapsama dayalı yazma üzerine kopyalama veya CCoW olarak adlandıracağız. Şekil 1, CCoW kavramını göstermektedir. Her biri altı sayfadan oluşan 0 ve 1 olmak üzere iki bölge vardır. 

Yeşil gölgeli sayfalar yazarken kopyala ile doldurulur. İşlem çatal sistem çağrısını çağırdığında, yeşil olanlar dahil tüm sayfalar için çatal sırasında bırakılacak yazma izni. Yüksek konumlu bölgeyi belirleme eşiğinin %60 olduğunu varsayalım. Bölge 0'da, çataldan önce dört sayfa (sayfa 1, 2, 3 ve 4) kopyalanarak %4/6=66'lik bir kapsam sağlandı.

Bu nedenle, bu bölgenin yüksek uzaysal lokaliteye sahip olduğu kabul edilir ve tüm sayfalar, kırmızıyla gölgelenmiş olarak 3. sayfadaki sayfa hatasını ele alacak şekilde kopyalanır. Oysa alt bölge %33'lük bir kapsama sağlıyor çünkü altı sayfadan ikisi çatallanmadan önce kopyalanmış durumda.

Dolayısıyla bu bölge eşikten daha düşük kapsama alanına sahiptir ve bu da bölgedeki mekansal lokalitenin düşük olduğunu göstermektedir. Bu nedenle, yazma için sayfa 9'a erişildiğinde, normal yazma sırasında kopyalama prosedüründe olduğu gibi, sayfa hatası işleyicisinde yazma sırasında yalnızca hatalı sayfa kopyalanır.

improve memory


For more information:1950477648nn@gmail.com

Bunları da sevebilirsiniz