<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>AGCF Çözümü için Gerçek-Zamanlı Performans Optimizasyonu</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Figen Gürcan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yunus Dönmez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fatih Ayvaz</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Selçuk Mitmit</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Netaş Telekomünikasyon A.Ş</institution>
          ,
          <addr-line>İstanbul</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>663</fpage>
      <lpage>668</lpage>
      <abstract>
        <p>Özet. Bu makalede Netas VoIP (Voice over IP) santralinin IMS (IP Multimedya Subsystem)'e erişim verimliliğini artırmaya ve abone kayıt işlemleri sırasında olumsuz etkilenen sistem performansını iyileştirmeye yönelik çalışmalarla ilgili bilgi birikimi ve tecrübe paylaşılmıştır. Bu kapsamda geliştirdiğimiz aramaprogramlama teknikleri ve önerdiğimiz bit haritası yöntemi yardımı ile optimum sayıda abonenin taranması sağlanarak sistem performansı en az %15 oranında artırılmıştır. Proje öncesi ve sonrası yapılan ölçüm sonuçları ve projenin sistem performansına etkisi rakamsal verilerle sunulmuştur.</p>
      </abstract>
      <kwd-group>
        <kwd>AGCF</kwd>
        <kwd>IMS</kwd>
        <kwd>VoIP Sistemleri</kwd>
        <kwd>Performans optimizasyonu</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Telekom operatörleri, mevcut müşterilerinin büyük kısmı eski nesil teknolojileri
kullandığından dolayı eski nesil teknolojilerle sunmak istedikleri yeni teknolojileri ve
servisleri entegre eden çözümler talep etmektedir [1]. Bu müşteri ihtiyaçları ve
teknolojik gereksinimleri karşılamak için Netaş 2012 yılında AGCF (Access Gateway
Control Function) çözümü tasarlamıştır. Bu çözüm ile TDM (Time Division Multiplexing)
aboneleri VoIP sistemine entegre olup IMS’e bağlı uygulama sunucularından hizmet
alabilmektedir. Bunun sonucunda 50K TDM abonesinin zengin IMS IP servislerini
kullanabilmesinin önü açılmıştır. Daha sonra yapılan geliştirmelerle desteklenen abone
sayısı 500K aboneye çıkarılmıştır.</p>
      <p>Bu kapasite artışı ve devamındaki geliştirmeler sonucunda sistem kurtarma
durumunda gerçekleşen toplu kayıt işlemleri ile sistem boştayken gelişen sınırlı sayıdaki
abone kayıt işlemleri sırasında mevcut CPU (Central Processing Unit) kaynakları çok
fazla kullanılmaktadır. Bu durumda sistem performansının olumsuz etkilendiği
görülmüştür. Bu çalışmada AGCF çözümünün gerçek zamanlı performansının artırılması,
CPU kullanımının azaltılarak, arka planda çalışan diğer işlemlerin performanslarını
düşürmesinin engellenmesine ilişkin deneyim paylaşılmıştır.</p>
      <p>Bu çalışma beş bölümden oluşmaktadır. Bölüm 2’de Netaş’ın müşterilerine sunduğu
VoIP tümleşik çözüm mimarisi, bölüm 3’ te AGCF çözümü genel hatlarıyla
anlatılmıştır. Bolum 4’de AGCF çözümünün performans iyileştirme faaliyetlerine ve son
bölümde ise genel değerlendirmelere ve sonuçlara değinilmiştir.
2</p>
    </sec>
    <sec id="sec-2">
      <title>VOİP Tümleşik Çözüm Mimarisi</title>
      <p>Netaş’ın müşterilerine sunduğu tümleşik çözüm mimarisi Şekil 1’de verilmiştir. Bu
mimarinin ana bileşeni olan yeni nesil VoIP santrali değişik görevleri yerine getiren
çok fazla alt bileşenden oluşmakta ve 1300 civarında servisi müşterilerine
sunabilmektedir. Bu santral birçok protokol kullanabilmekte ayrıca dünyadaki nerdeyse tüm
haberleşme standartlarını desteklemektedir.</p>
      <p>Bu santrali oluşturan bileşenlerden bazıları şunlardır. Çekirdek (Core) aramanın
kurulması, yönlendirilmesi ve sonlandırılması esnasındaki sinyalleşme gibi arama ve
servislerle ilgili tüm kontrolleri üstlenir. Ağ Geçidi (Gateway, GW) transfer katmanında
sinyalleşme sistem No:7 (SS7) ile IP tabanlı sinyalleşme protokolleri arasında dönüşüm
yapmaktadır. Ağ Geçidi Denetleyicisi (Gateway Controller, GWC) Çekirdek ile GW
arasındaki bağlantıyı sağlamaktadır. Oturum Trank Sunucusu (Session Server Trunk,
SST) santrali IP altyapıya bağlayan, diğer santraller ile bağlantıyı sağlayan birimdir.
SST, IMS ve diğer santraller arasındaki mesajlaşmalarda SIP protokolü
kullanılmaktadır[2].</p>
      <p>Şekil 1. VoIP Santrali ve Bileşenleri
3</p>
    </sec>
    <sec id="sec-3">
      <title>AGCF</title>
      <p>AGCF çözümü TDM abonelerinin VoIP sistemine entegre olmasını ve IMS’e bağlı
uygulama sunucularından hizmet alabilmelerini sağlamaktadır. IMS IP tabanlıdır ve diğer
sistemlerle SIP (Session Initiation Protocol) ile konuşmaktadır[3]. AGCF çözüm
mimarisi Şekil 2 de verilmiştir. AGCF çözümünde tüm AGCF abonelerinin IMS’e
kaydolması gereklidir [3]. Bunun için tüm abone bilgilerinin saklandığı Çekirdek üzerinde
bu aboneler için AGCF özelliği tanımlanmıştır. AGCF özelliğinin tanımlandığı
aboneler için Çekirdek, SST’ye kayıt isteğini gönderir. Bu kayıt mesajı içerisinde abonenin
numarası, IMS’den hizmet alırken kullanacağı bağlantı ve yapacağı kaydolma, kayıt
silme gibi görevleri taşıyan parametreler tanımlanmıştır. Bu paketler TCAP mesajı
formatındadır. SST kendisine gelen mesajlarını çözümleyerek SIP mesajlarını IMS’e
gönderir. IMS, SIP mesajını çözümleyerek kendi üzerinde tanımlanmış böyle bir
abonesinin olup olmadığını kontrol eder. Eğer kayıt varsa SIP 200 OK mesajı ile santrale
olumlu cevap döner. Ardından SST, Çekirdeğe kayıt işleminin gerçekleştirildiği
bilgisini iletir[4].</p>
      <p>Şekil 2. AGCF Çözüm Mimarisi</p>
      <p>Abonelerin tek tek ya da toplu olarak kayıt durumlarının güncellenmesi, ilk defa
kayıt edilmesi, ya da kaydını silinmesi gerektiren durumlar mevcuttur. Bu tarz bir
durum gerçek zamanda her an gerçekleşebileceği için çekirdek 50ms aralıklarla AGCF
abonelerinin kayıt durum değişikliklerini kontrol etmek için aboneleri taramak
zorundadır. Eğer bir TDM abonesi çağrı yapabilecek duruma geldiyse otomatik olarak kayıt
mesajı atılır. Eğer servis dışı kaldıysa kayıt işlemi yine otomatik olarak silinir.</p>
      <p>Çok sayıda abonenin aynı anda kayıt isteğinde bulunması yoğun bir mesajlaşma
trafiği yaratmaktadır. Bu yoğun mesajlaşmanın çağrı trafiğini olumsuz etkilememesi için
Çekirdekte AGCF kayıt işlemi zamanlama mekanizması (AGCF Throttling)
geliştirilmistir. Eğer kayıt için gönderilen istekler için SST den beklenen cevap sayısı
50’yi geçtiyse 10 ms, 100’ü geçtiyse 20 ms, 200’ü geçtiyse 30 ms, 400’ü geçtiyse 40
ms gecikmelerle mesaj gönderilir. 500’den sonra mesajlaşma durdurulur.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Performans İyileştirme</title>
      <p>Bir önceki bölümde bahsedildiği gibi abonelerin tek tek ya da toplu olarak kayıt
durumlarının güncellenmesi, ilk defa kayıt edilmesi, ya da kaydının silinmesini gerektiren
durumlar vardır. Bunlardan bazıları aşağıdaki gibidir.
 Aboneye ilk kez AGCF özelliği verildiğinde, ya da AGCF özelliği kaldırıldığında,
bu abone için kayıt etme ya da kayıt silme mesajı gönderilir.
 Abonelerin bakım ya da herhangi bir problem nedeniyle servis durumunun
değişmesi durumunda kayıt durumlarının güncellenmesi gerekmektedir.
 Bir GW veya GWC’nin bakım durumlarında, bu GW veya GWC’ye bağlı tüm</p>
      <p>AGCF abonelerine kayıt durum değişikliğini bildiren mesaj gönderilir.
 SST’nin bakım durumlarında tüm AGCF abonelerinin kayıtları yenilenir.
 Manuel denetim abonelerin servis durumlarını kontrol ederek tüm AGCF
abonelerinin kayıtlarını yeniler.
 Otomatik denetim veri uyuşmazlıklarını kontrol eder ve servis durumu ile kayıt
durumu uyuşmayan aboneler için servis durumuna göre tekrar mesaj gönderir
 Çekirdek yeniden başlatıldığı zaman aboneler servise girdikçe SST’ye kayıt mesajı
gönderilir.</p>
      <p>Çekirdek belirli aralıklarla abonelerin kayıt durumlarındaki değişiklikleri IMS’e
bildirebilmek için aboneleri taramaktadır. Abonelerin kayıt durumu değişim bilgisinin
çok geciktirilmemesi için bu zaman aralığının çok uzun olmaması gerekmektedir. Aynı
zamanda abonelerin sürekli taranması da sistemi yoracağından optimum bir çözüme
ihtiyaç duyulmaktadır.</p>
      <p>CPU performansını asıl etkileyen faktör 50ms de bir bütün abonelerin taranmasıdır.
CPU kullanımını düşürmek için her seferinde 500 bin aboneyi taramak yerine optimum
sayıda abonenin taranması sağlanmıştır. Şekil 3 ’teki gibi AGCF abonelerinin tutulduğu
veri yapısının eşleniği iki kademeli bir bit haritası geliştirilmiştir. 16 bitlik ilk kademe
abonelerin havuz endeksini temsil etmektedir. İlk kademedeki her bir bite bağlı
oluşturulan ikinci kademedeki 16 blok ise abonelerin ilgili havuzun içindeki adreslerini temsil
etmektedir.
Yukarıda bahsi geçen, abonelerin kayıt durumlarını değiştiren her bir olay da 6 bitlik
ayrı bir bit haritasında tutulmuştur. Yeni yapıda 5 saniyede bir olay haritası kontrol
edilir. Bir olay oluştuğunda ilgili işlemler olayı olay bit haritasında, kayıt değişikliği
gerektiren aboneleri ise abone bit haritasında işaretler. Herhangi bir olay geldiğinde 5
saniyenin bitmesi beklenmeden tarama işlemi hemen başlatılır. Şekil 3’ te
örneklendirildiği gibi tarama işleminde önce ilk kademe bit haritası kontrol edilir. Eğer
ilk kademedeki bit haritasında kontrol edilen bit değeri 1 ise o bite bağlı oluşturulan
ikinci kademedeki blok taranmaya başlanır. Eğer bit değeri 0 ise o blok taranmaz ve ilk
kademedeki bir sonraki bit kontrol edilir. Çekirdek işlemcisi 32 bit algoritmik
operasyon desteklediğinden ikinci kademedeki bloklarda her bir satır uzun tamsayı
olarak okunur. Eğer satır değeri 0 ise o bloktaki bir sonraki satıra geçilir. Eğer 1 ise
satırdaki kayıt mesajı gönderilecek aboneler belirlenerek kayıt güncelleme mesajı atılır.
Bu çözüm her 50ms’de bir 500k abone taramak yerine, eğer olay yoksa 5 saniyede bir
6 bitlik olay bit haritasının, eğer olay varsa optimum sayıda abonenin taranmasına
olanak sağlamıştır.</p>
      <p>Performansı iyileştirmek için yapılan bir diğer çalışma ise IMS networküne kayıt
olmak için atılan TCAP mesajlaşmasının da santraldaki hali hazırda akan trafiğe en az
etkisi olacak şekilde geliştirilmesidir. Ofis ilk başlatıldığında çalıştırılan bakım
işlemleri içinde aboneler sırayla çalışır hale geldikçe ilgili aboneler için gerekli TCAP
mesajlaşmaları başlatılmış, bu sayede ofiste arama trafiği varken bu işlemlerin sisteme
olan etkisi azaltılmıştır. Mesaj trafiğini azaltmak adına abonelerin IMS’e kayıt
isteklerinin balya halinde gönderilmesi sağlanmıştır. Mesajlaşmalar süresince güncellenen
AGCF verilerine daha hızlı erişim için AGCF veri tabanı ile direk bağlantı kurulmuştur.
Bunun yanında TCAP mesajlaşması sırasında SST ile Çekirdek arasında oluşabilecek
iletişim problemlerininin tespiti, bunlarla ilgili gerekli önlemlerin alınması ve sistemin
olası hatalar karşısında kendi kendine devreye girip oluşmuş veri uyuşmazlıklarını
gidermesi için denetim prosesi geliştirilmiştir.</p>
      <p>Senaryolar
Sistem boşta
Manuel Denetim
SST Bakım
Çekirdek yeniden başlatma
Çekirdek yeniden başlatma +
SST Bakım
Çekirdek yeniden başlatma +
GWC bakım</p>
      <p>Eski Ölçümler CPU %</p>
      <p>Yeni Ölçümler CPU %</p>
      <p>Gelişme
Aver
%36
%2.69
%2.35
%2.54
%2.26
%2.27</p>
      <p>Max
%39
%5.27
%8.88
%3.87
%3.83
%3.66</p>
      <p>Aver
%0
%1.41
%1.62
%1.87
%1.79
%1.92</p>
      <p>Max
%0
%1.56
%2.18
%2.77
%2.82
%2.72</p>
      <p>Aver
100%
48%
31%
26%
21%
15%</p>
      <p>Max
100%
70%
75%
28%
26%
26%</p>
      <p>Tablo 1. Analiz sonuçları</p>
      <p>Proje sonucunda elde edilen performans sonuçları Tablo 1 de gösterilmiştir.
Tablonun ilk kolonunda 4. bölümün başında bahsedilen test senaryolarının bazıları, 2. ve 3.
kolonlarda proje öncesi, 4. ve 5. kolonlarda proje sonrası AGCF işleminin harcadığı en
yüksek ve ortalama CPU yüzdeleri, son iki kolonda ise performans iyileştirme oranı
verilmiştir. Tabloda verilen senaryolar düşünüldüğünde santral büyük çoğunlukla
sistem boşta durumundadır. Bakım ya da Çekirdek yeniden başlatma gibi diğer durumlara
santralde ciddi problemler olduğunda başvurulur. Özellikle sistem kurtarma
durumunda gerçekleşen toplu abone kayıt işlemlerinin santrale etkisinin gözlemlenmesi için
seçilmiştir.</p>
      <p>Sistem boşta testi saate 660K arama trafiği altında, mesajlaşmayı başlatacak
herhangi bir olayın manuel olarak tetiklenmediği koşullarda mesajlaşma çok azken ya da
yokken yapılmış ve analiz sonuçları yaklaşık 30 dakika boyunca 5 saniye aralıklara
AGCF işleminin harcadığı CPU değerleri okunarak elde edilmiştir. Diğer testler yine
ayni oranda arama trafiği altında ilgili olay tetiklenerek gerçekleştirilmiş, mesajlaşma
süresi boyunca yine 5 saniye aralıklarla CPU değerleri toplanarak analiz edilmiştir.</p>
      <p>Tabloda sistem boşta durumunda mesajlaşma çok azken ya da yokken 50ms de bir
bütün abonelerin taranmasının sisteme etkisi görülmektedir. Daha efektif tarama
sistemi ve yapılan diğer geliştirmeler sayesinde sistem boşta durumunda %100 oranda
iyileştirme gözlemlenmiştir.</p>
      <p>Tablodaki verilerden anlaşılacağı üzere yoğun mesajlaşmanın olduğu durumlardaki
CPU değerleri mesajlaşma çok azken ya da yokken alınan CPU değerlerine göre daha
azdır. Bunun nedeni daha önce bahsedilen AGCF kayıt işlemi zamanlama
mekanizmasıdır. Çok yoğun mesajlaşma sırasında SST yeteri kadar hızlı cevap veremediği için
mesajlar arasına konulan gecikmeler CPU kullanımını azaltmaktadır. Bu senaryolarda
olduğu gibi toplu kayıt işlemlerinde tüm aboneler tarandığından dolayı tarama
mekanizmasından çok yukarıda bahsedilen diğer geliştirmelerin etkisi olmuş ve %15 ila %50
oranlarında iyileştirme gözlemlenmiştir.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Sonuçlar</title>
      <p>AGCF üzerinde yapılan geliştirmeler sonucunda abone sayısının 500 bine
çıkarılması hem daha fazla mesajlaşma, hem de daha fazla abonenin taranmasını
gerektirmektedir. Bu nedenle çekirdekteki kayıt işlemlerini yöneten mekanizmanın
tekrar yapılandırılması ihtiyacı doğmuştur. Mevcut AGCF çözümünde CPU
kaynaklarının kullanımının bazen %30’lara çıktığı yapılan analizler ile görülmüştür.
Bu bağlamda AGCF çözümünün gerçek zamanlı performansının ve ürünün işlem
kapasitesinin artırılmasına yönelik çalışmalar yapılmıştır. Uygulanan arama ve
programlama teknikleri sayesinde bu çalışmada sunulan geliştirmelerin genel olarak
sistem performansını senaryoya bağlı olarak %15 ila %100’e kadar oranlarda artırdığı
fakat en büyük katkısının sistem boştayken özellikle kararsız hat durumlarının sisteme
getirdiği yükü ortadan kaldırmak olduğu görülmüştür. Yaklaşım AGCF mimarisi ile
ilintili olmayıp herhangi bir sistemde tarama gerektiren herhangi bir sürece
uygulanabilecek niteliktedir.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Chiou</surname>
            ,
            <given-names>H-B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morrison</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liao</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , “
          <article-title>Experience with an IP Multimedia System Trial for PSTN Migration,” IEEE Com</article-title>
          . Magazine,
          <volume>45</volume>
          (
          <issue>7</issue>
          ):
          <fpage>127</fpage>
          -
          <lpage>133</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Gözüaçık</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ayvaz</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Özdemir</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaya</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yavuz.</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          “
          <article-title>VoIP Santral Çekirdek Bileşeninde Yazılım Yaması Modeli”</article-title>
          ,
          <source>Proceedings of the 8th Turkish National Software Engineering Symposium</source>
          ,, pp.
          <fpage>679</fpage>
          -
          <lpage>688</lpage>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Bayhan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alagöz</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <source>“IP Çokluortam Ağlarına Genel Bir Bakış ve Hareketlilik Yönetimi” Akademik Bilişim Konferansı</source>
          , pp.
          <fpage>671</fpage>
          -
          <lpage>676</lpage>
          , Şanlıurfa,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Aktürk</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demirkıran</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Uysal</surname>
          </string-name>
          , Ö.,
          <string-name>
            <surname>Hacıbeyoğlu</surname>
            <given-names>B.</given-names>
          </string-name>
          , ve Yavuz O.,
          <source>“IMS-TDM Entegrasyonu: AGCF Çözümü” IEEE 22. Sinyal İşleme ve İletişim Uygulamaları (SİU</source>
          <year>2014</year>
          ), pp.
          <fpage>1495</fpage>
          -
          <lpage>1498</lpage>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>