FireBird 2.0 Alpha Notları
mussimsek17.03.2005 - 10:03:45
Merhaba,

FireBird 2.0 Alpha'nın tanıtım pdf'i yayınlandı. 2.0 sürümünde neler var, neler yapmayı planlıyorlar vs. anlatan kapsamlı bir döküman. Kuri_TLJ dökümanı bana ulaştırdı, siteye koydum.

www.delphiturkiye.com/dfiles/Firebird_v2Alpha01.ReleaseNotes_0200_02.zip (117 KB)

Göz atmanızda fayda var ;)

Kolay gelsin.
 
csyasar17.03.2005 - 11:46:49
Security
Summary of Changes
Better password encryption
A. Peshkov

Password encryption/decryption now uses a more secure password hash
calculation algorithm.

Users can modify their own
passwords A. Peshkov
Users can now modify their own passwords.
Remote access to security database is
rejected A. Peshkov

The server now rejects access to security.fdb through any remote protocol.
GSEC now uses the Services API A. Peshkov
Protection from brute-force attack A. Peshkov
Attempts to get access to the server using brute-force techniques on accounts
and passwords are now detected and locked out.
API Vulnerabilities closed C. Valderrama,
A. Peshkov
Several known vulnerabilities in the API have been closed. More information
to come.
Details of the Security
Changes in Firebird 2.0 A. Peshkov
Several changes have been implemented to improve security. Aspects that have
received special attention include:
the lack of brute-force resistant passwords encryption in the security
database
l
the ability for any remote user with a valid account to open the security
database and read hashes from it (especially interesting in combination
with the first point)
l
l the inability for users to change their own passwords
the lack of protection against remote brute-forcing of passwords on the
server directly
l
Firebird 1.5 Authentication


dökümanın en güzel kısımlarından biri de burası olmuş. :) ne zamandır bekliyodum bu tür bir güzelliği...
 
coderlord17.03.2005 - 13:23:09
Nasıl bir güzelliği? Password'lerin şifrelenmesini mi?
 
coderlord17.03.2005 - 13:24:54
Bu adamlar şifreleme için SHA-1 algoritması kullanmış, geçenlerde bu algoritma kırıldı. Ee? Ne olacak? :)

bkz. http://www.fazlamesai.net/modules.php?name=News&file=article&sid=2693
 
csyasar17.03.2005 - 20:01:26
Nasıl bir güzelliği? Password'lerin şifrelenmesini mi?
Bu adamlar şifreleme için SHA-1 algoritması kullanmış, geçenlerde bu algoritma kırıldı. Ee? Ne olacak?


yazılan yazının sadece 1 satırının değil de tümünün okunarak bir değerlendirmeye varılması lazım değil mi güzel kardeşim.
 
coderlord18.03.2005 - 08:10:06
Bütün PDF'i okudum sen merak etme.
 
coderlord18.03.2005 - 08:15:39
Nasıl bir güzellik bekliyordun merak ettim de sordum. Hala söylemedin @csyasar
 
FAOsoft18.03.2005 - 08:30:08
Veritabanını şifreleyebilmek bana yeter.
kırılmayan şifre yoktur.her önüne gelen kırmasında
 
coderlord18.03.2005 - 09:13:24
Veritabanı metadatasının şifrelenebileceği hakkında herhangi bir bilgi yer almıyor. Gözümden kaçmış olabilir. Belki PDF'e daha eklemediler. Belki bu sürümde yok başka sürümde olacak.

Bence en büyük güzelliği SQL-99 standartlarını yakalamaya başlamaları ve SMP desteğinin sağlanacak olması. Enterprise bir VT olmaya başladı sonunda. Artık daha fazla dikkat çekecektir.
 
FAOsoft18.03.2005 - 09:41:30
pdf yi okumadım ama yanlış hatırlamıyorsam ve yanlış anlamadıysam böyle bişi forumda geçmişti Embarassed
 
coderlord18.03.2005 - 09:54:28
Haklısın ben söylemiştim. :) Adamların "yapılacaklar" listesinde yer alıyordu. Bekleyip görelim.
 
FAOsoft18.03.2005 - 10:03:50
bende acep erken bunama mı yaşıyorum diye düşünmeye başlamıştır Laughing
 
Kuri_YJ18.03.2005 - 10:06:08
Selamlar
Yaw bilen var mı diye soruyorum veya hakkında bilgisi olan var mı diye soruyorum.

FB 16 MB memorynin üzerine çıkmıyor diye biliyorum hatta övündükleri bir konu bu Minimal Configuration diye. Şimdi adamlara Feature Requests olarak bir öneride bulundum (Source Forge'da PB Project'te de arama yaptırdım bulamadım, belki ben kaçırdım) Daha fazla memory kullanması yönünde bir öneri yaptım.

İki çeşit installation seçeneği olsun, biri minimal installation 16 MB ile sınırlı, diğer serbest Memoryli ve kullanıcının kendisinin memory kullanımını ayarlaması için.

FB'nin bu özelliği yok değil mi? (Eğer varsa rezil olduk cümle aleme :) ehi ehiii

Kolay Gelsin
 
mege18.03.2005 - 10:11:25
firebird.conf da içinde memory geçen ayarlar bunlar, tamamını okumaya üşendim :)

# ----------------------------
# In-memory sorting module
#
# The amount of memory allocated for each sort block.
#
# Type: integer
#
#SortMemBlockSize = 1048576


#
# The maximum amount of memory to be allocated by the in-memory
# sorting module.
#
# For Classic servers, this setting is defaulted to 8 MB.
# Although it can be increased, the value applies to each client
# connection/server instance and thus consumes a lot of memory.
#
# Type: integer
#
#SortMemUpperLimit = 67108864



# ----------------------------
# Locking and shared memory parameters
#
# Bytes of shared memory allocated for lock manager.
# In Classic mode, the size given is used for the initial allocation. The
# table expands dynamically up to the limit of memory. In SuperServer, the
# initial size is also the final size.
# Default is 96K on Linux and Solaris, 256K on Windows.
#
# Type: integer
#
#LockMemSize = 262144



# ----------------------------
#
# Bytes of shared memory allocated for event manager.
#
# Type: integer
#
#EventMemSize = 65536
 
coderlord18.03.2005 - 10:13:32
Kuri sen sil o request i bence. :)
 
Kuri_YJ18.03.2005 - 13:40:56
Selamlar,

Coderlord, neden sileyim ben hala bir şey bulamadım Memory kullanımına ilişkin, baktıklarım hep kendi içindeki memory paylaşımı hakkında (benim gördüğüm kadarı ile) Henüz windowstaki memory'i kullanabilecek bir parametre göremedim . Firebird.conf'u da inceliyorum ama hala istediğim şekilde bir parametreye rastlayamadım.

Yanılıyor muyum acaba?
 
csyasar18.03.2005 - 13:52:18
Nasıl bir güzellik bekliyordun merak ettim de sordum. Hala söylemedin @csyasar


güzellik ortada kardeş. anlayan anladı zaten Laughing yorma kendini. okuduklarını al, yazdıklarımı boşver :)
 
coderlord18.03.2005 - 14:40:11
Anlayan neyi anladı? :D Neyse, güzellikler seninle olsun csyasar. :D
 
coderlord18.03.2005 - 14:49:41
@kuri_TLJ aradığın bu mu?


# ----------------------------
# Number of cached database pages
#
# This sets the number of pages from any one database that can be held
# in cache at once. If you increase this value, the engine will
# allocate more pages to the cache for every database. By default, the
# SuperServer allocates 2048 pages for each database and the classic
# allocates 75 pages per client connection per database.
#
# Type: integer
#
#DefaultDbCachePages = 2048
 
coderlord18.03.2005 - 14:53:10
"Windows'da sadece 16 MB kullanabilir" diye birşey olabilir mi? Nerede okumuştun? Ben de merak ettim şimdi. Öyle birşey var ise öğrenelim. Question
 
rsimsek18.03.2005 - 15:24:58
Arkadaşlar bu bahsedilen ayarlar hep veritabanı optimızasyonu ile ilgili. Yani kendi configurasyon ayarları.. @Kury nin bahsettiği 16 MB. fb server ın gerekli gördüğü minumum bellek miktarı. ve anladığım kadarıyla da @Kury daha fazla bellek kullanarak perfomansı yükselemez mi sorusunda... Question
 
Kuri_YJ18.03.2005 - 15:25:33
Onu gördüm DBCachePages 2048 Page ama bellekte 16 MBnin üzerine çıkmıyor meret muhtemel swapfile olarak dizayn ediyor memory'i.

http://www.firebirdsql.org/guide/FBFactsheet.html

Hardware requiriments'e bak göreceksin.

Ayrıca memory'i izle, istediğin kadar büyük FDB'de sorgu çek, insert yap, amcam 16 MB'yi geçmiyor. Ne yaptımsa geçmedi tospağa :)

Kolay Gelsin
 
hdayi18.03.2005 - 15:37:53
the amount of physical RAM (as little as 16MB will do for a start)

as little as 'in ne manaya geldiğini pek çözemedim ama burada başlangıç için en az (veya böyle biişey) 16 mb yeter diyor. 16 mb'nin üstünü kullanmaz demiyor.
 
Kuri_YJ18.03.2005 - 15:43:12
Evet, başlatabilmek için 16 MB memory yeter diyor, üzerini de duruma göre kullanır da demiyor, tıpkı kullanmam demediği gibi.

Ama arka taraftan incelediğinde 16 MB'ın üzerine çıkmadığını görüyorum ben !... Üzerine çıkmayı başaran var mı içinizde? Çıktınız ise bana da söyleyin nasıl yaptınız...

Kolay Gelsin
 
coderlord18.03.2005 - 15:53:02
Benim anlamadığım şu. Bellek yönetimini Windows yapar. FB Engine ben şimdi swap file kullanayım diyemez ki.

Test olarak Conf içindeki bütün bellek parametrelerini max duruma getirip bu şekilde denemek lazım.
 
coderlord18.03.2005 - 15:55:11
Bir de şu var. Sen muhtemelen tek kullanıcı ve tek bağlantı kullanarak testini yapıyorsun. Thread ile çoklu bağlantı kurup bellek kullanımını incelemek lazım. Bunun için de büyükçe bir VT gerekli. Hmm. Aklıma taktın. Ben şunu bir deneyeyim.
 
Kuri_YJ18.03.2005 - 16:01:16
CoderLord Selam,

Bellek yönetimini Windows yapar doğrudur ama senin EXE' 1-2 MB'nin içine sığıyorsa ve sen tüm işlemlerin için standard diziler kullanırsan Memory ihtiyacın 16'nın (yada senin ayarladığın memory seviyesinin) üzerine çıkmaz ki.

Yani benim listem ne kadar uzun veya büyük olursa olsun, bu listeyi ben belleğime en fazla 1000 satır alacak kadar ayarlarsam ve her 1000 kaydı aşımında bir sonraki 1000 kaydı belleğime yükle gibi swapping yaparsam, Memory'i geçmeme imkan yok !...

Anlatabildim mi? Birazdan ben birden fazla makinayı bağlayıp deneme yapacağım hepsine aynı anda query'ler vereceğim, bakalım ne yapacak. Bu arada Conf. ayarlarıyla oynamadan yapacağım.

Sonra diğerini denerim, ama vaktim henüz yok, bulunca yapacağım ve sonuçları bildireceğim, eğer sen benden önce yaparsan bana bildir :)

Kolay Gelsin
 
coderlord18.03.2005 - 17:35:11
@Kuri_TLJ default CONF ayarlarıyla, eşzamanlı 100 bağlantı ve FetchAll ile her bağlantıda sürekli 20000 kayıt çekerek, 18956 KB RAM kullanımına ulaştım.

Pentium 4 2,5 GHZ'de bütün bunlar için CPU kullanımı %30-50 arasındaydı.

Bariyer aşılabiliyor yani. ;)
 
Kuri_YJ18.03.2005 - 17:38:09
Selamlar,

Bir deneme yaptık sonuçlarını yazıyorum

5 milyon kayıtlık bir tablodan aynı anda iki kullanıcı bağlantı kurup,
select * from TEST_ADNAN

query'sini çalıştırdık, sonuçlar hayli ilginçti...

Her iki arkadaşımızda DBWorkbench kullandık,

DBW'nin memorysi (Fetch all dediğimiz için) 680 MB'a vurdu, arkadaşımınki de aşağı yukarı aynı seviyelere vurdu.

Query'ler çalıştırılmadan önce FBServer Memory'si 5 MB civarında idi, Query'leri sallayınca bu memory 11 MB'a kadar çıktı. Bir süre öyle devam etti ve birden 8 MB'a ardından 5 MB'a ardınan 1.5 MB'a indi Laughing Shocked :D tuhaf ama böyle oldu...

Data desen 5 Milyon kayıtlık database ve kayıtlar 500,000'li bölümler halinde unique recordlar, Server Makina XP, 1 GB Bellek var...

Yani alet inat ediyor bir türlü 16 MB'ı geçmiyor....

Sen bir şey alde edebildin mi Coder Lord?

Kolay Gelsin
 
coderlord18.03.2005 - 17:40:25
Programı düzelteyim buraya da yollarım denersiniz. Adı "Firebird kastırıcı" ama hiç kasmıyor bu yaw :)
 
Kuri_YJ18.03.2005 - 17:42:28
Aynı anda mesajları göndermişiz,

Bahsettiğin rakamlar küçük sayılmaz ama ilginç olan şu, 18 MB'yi geçmemiş, aşılabiliyor diyorsun ama bence 18 MB anlık bir şey olabilir ve Windows kaynaklı olabilir diye düşünüyorum.

5 Milyon kayıtlık bir Query'den sonuç dönüyor ve hiç bufferlamıyor (cache etmiyor alet) Yani Memory'de cache etmiyor.

Yazdığın kodu yollar mısın ben bir deneyeyim 100 connectiondan daha fazla kurayım kendi 5 mio'luk table'ıma query'ler göndereyim.

MSN'in açık ise ordan gönderebilir misin.

Sağolasın
 
coderlord18.03.2005 - 17:44:32
Oo sen de yollamışsın. Ulaştım hocam. Nerdeyse 19MB. Olay şu FB Engine aldığı belleği işi biter bitmez anında geri veriyor. Çok şahane. Bayıldım bu database e. (Zaten bayılıyordum ;) )

Aslında performance counter ile düşük interval li bir bellek izlemesi yapayım. Sonuçlar daha net belli olur.

Abi 100 kullanıcıda bana mısın demiyor yaw. Başka VT olsa bu fetch'lerde 4GB ram yetmiyor diye bağırırdı.
 
coderlord21.03.2005 - 09:34:03
Kuri_TLJ. Yazılımı bitirdim. Ancak evde geliştirdiğim için kodları evde unuttum Embarassed Yarın sana ulaştırırım.

Bu arada FB'e IBX componentleri ile Thread yaratmada karşılaştığım sorunun çözümü ile ilgili bir makaleyi siteye ekliyorum. Benden sonrakiler aynı hataya düşmesin. :)

Kolay gelsin.
 
Kuri_YJ21.03.2005 - 09:35:29
Selamlar,

Peki denemelerinde Memory hiç 50 - 60 MB'lara vurdu mu?

Kolay Gelsin
 
coderlord21.03.2005 - 09:40:39
150 eşzamanlı connection ile ufak bir VT de 28 MB a ulaştım. Belki sen denediğinde daha da yükseltebilirsin. :)

Yanlız 150 thread'den fazlası bir PIII 850'yi çok kastırıyor. Connection açma ve commit kastıran şeyler. Programın başında threadler yaratılırken ve sonunda threadler sonlandırılırken 100 thread için 1-2 dakika kadar bir bekleme süresi olabiliyor.
 
Kuri_YJ21.03.2005 - 10:16:02
Selamlar,

Ben Ms-SQL Serverda yaptığım denemelerde alet ne kadar varsa alıp götürüyordu, ancak yeni yapılan bir değişiklik var sanırım (MS-SQL Server Enterprise Edition'da) Alet tutuyor 80-90 MB'a yayılıyor daha sonra memory'de daha fazla yer kaplamıyor amaaaa arka tarafta kullanılan belleğe bakıyorus 3 GB bellek Serverda kaplanmış :) ama MS-SQL Server kendisi 80-90 kullanıyorum diyor (örtbas etmişler :) ) Hhehehehehehe...


Firebird'de tutsa ve belleği biraz sömürse iyi olmaz mı? Belki bu 28 MB threadler için filan oluşmuş bi halt olabilir, yani bilemiyorum alet GB'lık veri tabanını yönetirken 16 civarında dolaşıyor sorun da çıkarmıyor.

Allah Allaaah, FB'yi yapanlar OZ Büyücüsü mü? MS'inkiler ne yapıyorlar, Kingston ile anlaşmaları mı var bu yazılımcılarının?

Ben hala FB'nin Veri tabanını yönetirken 16 MB'ın üzerini kullanmadığını düşünüyor ve diretiyorum. En fazla yani 16 MB'ın üzerine çıkmasına sebep kendine bağlı kullanıcıları yönetirken ihtiyaç duyduğu connectionlar sebebi ile kullanılıyordur. Yani yine de VT'yi yönetirken alet 16 MB'ın üzerini kullanmıyor !....

Ama senin göndereceğin kodları ben de deneyeceğim ve abartacağım büyük ihtimalle. Birkaç kullanıcıdan 1000 kadar connection açmayı düğünüyorum (yani en az 1000-2000 civarı bir connection ile random Query'ler çektireceğim Kayıt sayısıda muhtemel 16,000,000 civarı olacak.

Hadi bakalım ne olacak :)
 
coderlord21.03.2005 - 10:27:41
Haklısın Kingston ve Intel ile anlaşmaları var herhalde :)

Neden daha fazla RAM kullanmasını istediğini anlayamıyorum. Demek ki bir formül bulmuşlar ve bu işi en az RAM ihtiyacı ile halletmişler. Üstelik GB VT'de hiçbir sorunu da yok diyorsun. İstediğin performansı yakalayamıyor musun? SQL Server ile karşılaştırdığında daha fazla sorgulama süresi var? Yavaş mı kalıyor?

Yani merak ettiğim bu isteğin neden kaynaklanıyor? Fazladan RAM'in var da harcamak mı istiyorsun? :)
 
Kuri_YJ21.03.2005 - 10:35:28
Derdim aslında şu,

FB RAM kullanımını minimize ederek performans sağlıyor, MS-SQL Server kaçak dövüşüp, RAM'i kullanıyor, yani yaptığı iş eğer bellekte ise yanıtı verirken bir öncekine göre daha hızlı yanıt veriyor.

Yani, MS-SQL Serverda bir tane Query yazın ve getirme süresine bakın, sonra ard arda o query'i defalarca çağırın, sürenin giderek kısaldığını göreceksiniz. Yani alet, DATA'yı belleğine bindiriyor, hiç disk işlemi yapmadan belleğinde hallediyor, ama karmaşık Query'ler (yani her defasında farklı Tablolardan Farklı DB'lerden query'ler yolladığınızda belleğine yükleyemediği için performansı bozuluyor.)

Şimdi FB'de aynı taktiği biraz uygulasa fena olmaz, zaten hızlı bir veri tabanı, ama bir de bu taktiği kullanarak hızını katlasa fena olmaz mı sizce?

Ne dersin CoderLord?
 
coderlord21.03.2005 - 10:44:52
Hmm. Cache'lesin diyorsun. Bana zaten yapıyormuş gibi gelmişti. Aynı Query'yi FB'de üst üste çağırdığımda ilkine nazaran daha hızlı getirmiş gibiydi. Bana mı öyle geldi?

Eğer böyle bir özelliği yoksa ki emin değilim olup olmadığı konusunda, haklısın, eklenmesi kesinlikle çok faydalı olur.

Aslında yapılması kolay değil gibi. Transaction değişikliklerine göre yeniden sorgu yapıp yapmamaya karar vermesi lazım. Yani mesela cache'ler ama sen result'ı değiştirecek bir update yaparsın. Bu değişikliğe göre yeniden sorgu yapması lazım falan... Ya hakikaten bunu yapıp yapmadığını nereden anlarız? Geliştiricilerine sorsak?
 
Kuri_YJ21.03.2005 - 11:56:55
Zaten benim derdim de orda :) FB'nin Cache'lemesi ancak ve ancak İşletim sisteminin Disk okumasındaki cache'lemesi ile sınırlı.

Yani İşletim Sistemi okunan sector'leri belleğinde Cache'lediği için FB diskten okuma yapacağı zaman (ki aslen diskten okumaya çalışıyor) İşletim sistemi uyanıklık edip bunu bellekten yanıtlıyor.

Benim dediğim bu Sector'leri cache'leyen işletim sistemine ek olarak, FB'de diske sorup sormayacağına, belleğindeki Cache edilmiş Sayfalara bakıp karar verirse, İşletim sistemi arasında geçen bekleme süreleri de minimize edilir.

Böylece büyük DB'lerde gerçek anlamda performans artışı sağlanabilir diye düşünüyorum.

Tabi hala benim bu düşüncel tez olmaktan öte değil ama bu kullanılan bir yöntem. Ben de bu sebeple FB geliştirmenlerine Feature Request olarak geçtim.

Bilmem anlatabildim mi?

Kolay Gelsin
 
onaydin21.03.2005 - 23:39:02
Merhaba
Adnan bey windows un görev yöneticisindeki fbserver.exe nin bellek kullanımı (umarım doğru yere bakıyorumdur)
bir kullanıcı, basit bir query ve yaklaşık 10 bin satır için, indexlenmemiş 4-5 alan order by içine katıldığında 26mb olarak gözüküyor.
Başka denemelerimde 70 mb ı da gördüm.
 
Kuri_YJ22.03.2005 - 08:30:57
Selamlar,

Windows sürümü kaç, FB sürümü ne, işletim sistemi yapılandırması nasıl?

Ben 16,000,000 kayıtlık bir tabloda daha 16 MB'ın üzerine çıkamadım, ne indexi var ne de primary key.

Sendeki ayarları ve durumu söylersen ben de bakayım.

Kolay Gelsin
 
Kuri_YJ22.03.2005 - 08:46:55
Selamlar,

Test bilgilerim şöyle,


RECREATE TABLE TEST_ADNAN
(
TEST_ID INTEGER,
KOD VARCHAR( 20) CHARACTER SET WIN1254 COLLATE PXW_TURK,
ADI VARCHAR( 50) CHARACTER SET WIN1254 COLLATE PXW_TURK,
SOYADI VARCHAR( 50) CHARACTER SET WIN1254 COLLATE PXW_TURK,
TELEFON VARCHAR( 20) CHARACTER SET WIN1254 COLLATE PXW_TURK,
SAYI1 INTEGER
);


Table'da Random olarak üretilmiş 500,000 Kayıt vardı bu Random 5000,000 Kaydı kendi içine insert ederek 16,000,000 Kayda ulaştırdım.

Yalnız TEST_ID alanı 16,000,000 unique (tekil) 1'den 16,000,000'a kadar birer birer artan sayı şeklinde.

Sorgu cümlesi şu şekilde,



SELECT * FROM TEST_ADNAN WHERE ADI LIKE 'ADL%'



1 dakika 49 saniye sorgulama süresi ve hiç kayıt dönmedi.

Hiç index yok, primary key yok.

Bellek kullanımı 12 MB civarında sabit, CPU Kullanımı %22-30 arasında gidip geldi.

İlginç değil mi?

Kolay Gelsin
 
Kuri_YJ22.03.2005 - 10:11:12
Selamlar,

Maalesef tezlerim kuvvetle doğrulandı :) CoderLord'un hazırlamış olduğu test programı ile (Kendisine ayrıca burada teşekkür etmek istiyorum) 1000 Thread ile deneme yaptım, 16,000,000 Kayıtlık bir tabloda indexsiz, primary key'siz bir tabloda sorgulama yaptım.

150 MB bellek kullandı, %50 CPU kullandı.

500 Thread ile 98 MB Bellek Kullandı
100 Thread ile 30 MB Kullandı.

Yani her connectionda biraz daha bellek arttı ama VT boyutunun hiç bir etkisi olmadı !...

FB VT'yi cachelemiyor. Bir deneme daha aklıma geldi. Index oluşturup deneyeceğim.

Not : Bu denemelerin aynısını FB 2.0'da da denedim değişen bir şey olmadı.
 
gkimirti22.03.2005 - 10:58:07
sp den select yaptıgınızda memorynin cok daha fazla tuketildigini goreceksiniz.
normalde 4 kayıt donduren bir sp yi
( select id from sp_preport(0,null,null,2005,0,0,0) )
kriter olarak kullanınca

( select * from preport r
where r.id in (select id from sp_preport(0,null,null,2005,0,0,0)) )

task manager dan baktıgımda 33 MB kullanıldı gorunuyor.
acaba DBWorkbench ile daha farklı bir sonucmu cıkıyor.
ne kadar Bellek kullanıldıgını nasıl goruyırsunuz?
 
coderlord22.03.2005 - 11:02:28
Ben şahsen bellek kullanımına Task Manager'dan baktım. Ne kadar sağlıklı tartışılır tabii. :)
 
Kuri_YJ22.03.2005 - 11:03:56
Benim şu anda deneme yapmam için müsait bir zaman yok,

Şunu deneyebilir mi biri acaba. Aynı server'a birden fazla kişi bağlanıp aynı SP'yi çalıştırsın. O sırada Bellek kullanımını izleyelim.

Teşekkürler
 
coderlord22.03.2005 - 11:16:56
Bellek kullanımını process bazında daha sağlıklı izlemek için bir yöntem buldum.

- Windows XP kullanıyorsanız. Administrative Tools altında Performance bölümüne girin.

- Performance Logs altındaki Counter Logs'u seçin.

- Üzerinde sağ tuş yapıp "New Log Settings".

- Bir isim girin "Ör: Firebird"

- "Add Counters" düğmesine basın.

- Performance Object'ten process'i seçin.

- Sağ taraftaki listeden fbserver'ı seçin. (Tabii FB çalışıyorsa görünecektir)

- Sol taraftaki listeden izlemek istediğiniz özellikleri seçin ve "Add" deyin. (veya hepsini seçin)

- Close yapıp, Interval'i mesela 1 saniye ye getirin.

- "Log Files" tab ından Text file'ı seçin.

- Ok yaptıktan sonra yarattığınız performance objesini üstteki > düğmesinden çalıştırıp yeşil yapın.

- Testlerinizi yaptıktan sonra, log dosyasını C:\PerfLogs klasöründe bulabilirsiniz.

- Daha sonra Performance objesini durdurmayı unutmayın Exclaim

Kolay gelsin.
 
onaydin22.03.2005 - 18:31:28
Win XP ve FB 1.5.2 kurulu
Bu büyük sorgulamalar sırasında eğer order by kullanmışsanız
windows/temp klasöründe database fb_sort... şeklinde dosya üretiyor
transaction bittiğinde bu dosyayı otomatik olarak siliyor ki bende 35 mb
civarında bir boyuta ulaşmıştı.

Kullandığım order by sız select lerde bir sorun yaşamıyor join le kartezyen çarpım yaptırarak 350 bin satır döndürürken 3-4 mb bellek kullanıyor ama sıraya sok dediğimde coşuyor.
 
Kuri_YJ23.03.2005 - 08:20:24
Onaydin,

Yani Hep Disk Üzerinde yapıyor ne yapacaksa, değil mi? Yoksa yazdığını yanlış mı algılıyorum.
 
coderlord23.03.2005 - 08:36:31
Sort yaptığı belleği arttırma imkanı var.
 
Kuri_YJ23.03.2005 - 08:41:25
Selamlar,

FB 2.0'a DBWorkbench ile veya SQL Explorer ile bağlanamadım bir türlü, bağlanabilen var mı?

Kolay Gelsin
 
coderlord23.03.2005 - 08:42:28
IBExpert sorunsuz bağlandı. Saydıklarını hiç kullanmıyorum.
 
Kuri_YJ23.03.2005 - 08:43:01
SQL Explorer ile bağlandım, DB Workbench ile Local olarak dün bağlanamamıştım, local bağlantıdan farklı bir şekilde bağlanmayı düşünüyorum deneyeceğim.

Kolay Gelsin
 
Kuri_YJ23.03.2005 - 08:49:56
Eğer Local Protocol'den bağlantı kurmaya kalkarsanız her ikisi de sorun çıkarıyor, onun yerine TCP/IP ile bağlantı kurunca problemsiz bağlandı.

Hmmm...
 
Kuri_YJ23.03.2005 - 09:26:52
Özürlerimi sunarak hatayı söyleyeyim. FB 2.0'ın heyecanı ile ben FB 1.5.2'yi uninstall etmeden yüklemişim, e tabi birbirine girmiş arka tarafta DLL'ler o yüzden problem çıkıyormuş :)

Özür özür ehiii..
 
hdayi23.03.2005 - 10:22:16
Valla ne diyim, helal olsun. Bu konudaki ilk mesaj sabah 08:20'de atılmış bugün.
FireBird'cüler bu kadar iyi takib edildiklerini bilseler, sevinirlerdi sanırım.
 
Kuri_YJ23.03.2005 - 15:19:13
Herkese Selamlar,

FB Geliştirmenleri bu konuda yanıt yazdılar, MEGE ve CoderLord'un dediği gibi (benim tahminlerimin ve araştırmalarıımın aksine) aşağıdaki değerler ile oynayarak memory kullanımını ayarlayabilirsiniz dedi.

Benim tahminim bunları kendi 16 MB içinde kullanılabileceği idi ama değilmiş, kaç page'lik cacheleme istersek o kadar yazabiliyormuşuz.

Ben benim serverda aşağıdaki değerleri vererek, 650 MB'lara vuran bir kullanım sağladım.

DefaultDbCachePages = 49152
SortMemBlockSize = 1048576
SortMemUpperLimit = 268435456

Herkesin Bilgisine :)

Kolay Gelsin
 
rsimsek23.03.2005 - 16:31:52
Peki hocam önceki varsayılan durumu ile yeni ayarlı durumu arasında bir perfomans farkı hissettin mi?
 
Kuri_YJ23.03.2005 - 16:49:18
Henüz sağlıklı bir deneme yapamadım , bugün makinam bir tuhaf, yarın veya öbürgün denemeyi düşünüyorum.
 
onaydin23.03.2005 - 17:35:35
Evet bende direkt harddisk üzerinde tutuyor ama bu sort işlemi için ve geçici.



FB 1.5 için bazı değerler şöyle
Maximum Page Size : 16,384 bytes
(Burda diğer seçenekler 1024 , 2048, 4096 (default) , 8192)
Bunlardan birni seçmek lazım
[Any other numbers will be resolved back to the next lowest number in this range. For example if you specify 3072, FB will create a database with a page size of 2048])

Maximum Cache Buffers: 65,536 pages
Practical limits depend on available ram. The total size
(cache pages * page_size on Superserver;
cache pages * page_size * no. of concurrent users on classic server)
should never be more than half of the available ram.
Consider 10000 pages as a practical limit and tweak backward or forward from there as performance dictates.

The Database Cache
Database cache is a chunk of memory reserved for each db running on the server. Its purpose is to cache all of the database pages (also called buffers) that have been most recently used. ... Default setting, which constitutes a number of blocks of memory, or page buffers, each the size of one db page, is set in the server's conf. file;
The parameter is DefaultDbCachePages in firebird.conf.

The number of cache buffers required is approximate. It needs to be large enough to cater for the page requirements of databases but not so large as to consume memory that is needed for other operationas. Up to a point, the more activity that can be handled in cache, the better the overall performance. The axion "Database servers love RAM" is true for Firebird. But FB uses RAM for other activities that are at least as important as caching. Transaction inventory and index bitmaps are maintained in RAM and, from v1.5, sorting and merging are done in memory, if it is available.

It is important to realize that every system has a critical point where too-large cache configuration will consume more memory resources than the system can "spare". Beyond this point, enlarging the cache will cause performance to degrade

Limits and Default
The min cache size is 50 pages. Ther is no maximum, as long as the allocation in total does not exceed the RAM available.
Default cache allocation is

  • [*:be81f34eb4]Superserver
    For each runnig dataabase,2048 pages. All users share this common cache pool.
    As an indication of how resources can be consumed, a single database running at the default settings for PAGE_SIZE(4k- 4096b) and defauldDbCachePages(2k) requires 8 mb memory. Two databases running with the same settings require 16 mb, and so on. Default caches usage is calculated:
    :be81f34eb4
    [*:be81f34eb4]Classic Server: Per Client attachment, 75 cache pages. Each attachment is allocated its own cache. The amount of memory required is the total of the cache requirements of all client attachments to each database. Cache usage is calculated by
    :be81f34eb4



  • Sort la ilgili açıklamalar şöyle;
    Temporary Sort Space
    Queries with ORDER BY or GROUP BY clauses " park" the intermediate sets for sorting operations in temporary storage space. It is recommended that you have storage available that is approximately 2,5 times the size of the largest table you will sort. FB 1.5 and higher versions can configure sort space in RAM; all versions needed to have temporary disk space to use for these operations.
    Sort Memory
    v1.5 and higher set the default block size of sort memory at 1 mb. This is the size of each chunk of RAM that the server will allocate, up to a default max of 64 mb on SuperServer and 8 Mb of Classic Server. Both of these values can be reconfigured by means of the conf. parameters SortMemBlockSize and SortMemUpperLimit,.

    Classic server için bunu kastırmamak tavsiye ediliyor.

    Sort Space on Disk
    TMP or TEMP on Windows.
    You can configure sort space in two ways.
    1 Set up directory location using the environment variable FIREBIRD_TMP
    2 Configure directories in firebird.conf for v1.5 and higher.
     
    rsimsek25.03.2005 - 09:39:27
    Malum perfomans kaybı en fazla disk erişimlerine başvurulduğunda oluşmaktadır. Sanırım temp klasörünün oluşturulacak ram disk olarak hedeflenme şansı var.. Idea

    http://www.ramdisk.tk
     
    NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
    1998-2006 www.delphiturkiye.com