MongoDb makinemde mongostat ile baktığımda gördüğüm connection sayısı 500 civarındaydı.
faults locked % idx miss % conn
0 0.5 0 576
0 2.7 0 579
0 0.6 0 580
0 0.3 0 583
0 2.7 0 585
0 0.4 0 586
PHP tarafında sadece kapatmadığım mongodb bağlantılarını kapatarak bu sayının 30'a düştüğünü gördüm. Get performansında da beklediğim üzere büyük artış oldu.
Şu an da mongostat çıktısı
qr|qw ar|aw conn time
0|0 0|0 34 10:40:10
0|0 0|0 34 10:40:11
0|0 0|0 35 10:40:12
0|0 0|0 35 10:40:13
0|0 0|0 35 10:40:14
Showing posts with label optimizasyon. Show all posts
Showing posts with label optimizasyon. Show all posts
Wednesday, March 28, 2012
Sunday, February 19, 2012
MongDb Disk Temizligi
Ozellikle disk alaninizin neredeyse yarisini kaplayan bir veritabaniniz varsa collection sildiktan sonra mutlaka
calistirmayi unutmayin yoksa bos yere sildiginiz collection icin ayrilmis alan diskinizde yer kaplayacak.
Mevzu uzerine sunu da okuyun tabi http://www.mongodb.org/display/DOCS/Excessive+Disk+Space
db.repairDatabase()
calistirmayi unutmayin yoksa bos yere sildiginiz collection icin ayrilmis alan diskinizde yer kaplayacak.
Mevzu uzerine sunu da okuyun tabi http://www.mongodb.org/display/DOCS/Excessive+Disk+Space
Tuesday, February 14, 2012
MongoDb ile Aşırı Disk Kullanımı ve Sonrasında Optimizasyon
Senaryomuz su :
1. db.copyDatabase("db1","db1back")
2. use db1
3. db.dropDatabase()
4. db.copyDatabase("db1back","db1")
5. use db1back
6. db.db1()
19G lik veri icin ortalama yarim saat surdugunu ve hakli olarak bu sirada gelen insert ve find komutlarina cevap vermedgini de ekleyim.
Ek olarak okunmalidir ki http://www.mongodb.org/display/DOCS/Excessive+Disk+Space
MongoDb diskiniz %88 doldu. Makineye yeni bir dik takamiyorsunuz. Gereksiz buyuk boyutlu collectionlar var ve siz bu gereksiz collection'lari sildiniz.Bu durumda veri tabanina repair komutu vermek gerekecek ancak bu da kullanimda olan disk alanini kadar bos alana ihtiyaca ihtiyac duyacaktir ve hata verecektir. Bu durumda yapilmasi gereken sey (eger bir disk ekleyemiyorsaniz) elinizdeki var olan datasinin gercekte diskin yarisindan kucuk bir alana sigdigini dusundugunuz veritabanina :
db.col1.drop()
db.col2.drop()
db.col3.drop()
Veri buyuklugunun neredeyse yaridan fazlasini sildiginizi dusunurken hala %88 doluluk orani sizi sasirtti zira mongodb bir takim disk ve indexleme performansi kurallari geregi sildiginiz datanin kapladigi alani diskte hala ayrilmis olarak tutar. Bunun icin collection'lari silmeden once bosaltip ardinddan db.col1.runCommand("compact") calistirmaniz gerekirdi ama artik silindi ve bunu calistirinca hata veriyor (ve tabiki ayni adda bos bir collection acip calistirmak anlamsiz olacaktir).
1. db.copyDatabase("db1","db1back")
2. use db1
3. db.dropDatabase()
4. db.copyDatabase("db1back","db1")
5. use db1back
6. db.db1()
19G lik veri icin ortalama yarim saat surdugunu ve hakli olarak bu sirada gelen insert ve find komutlarina cevap vermedgini de ekleyim.
Ek olarak okunmalidir ki http://www.mongodb.org/display/DOCS/Excessive+Disk+Space
Wednesday, May 26, 2010
hız önemli mîrim
json_encode ve serialize arasındaki hız farkını bir de ben test etmek istedim hepsi bu.
Bendeki sonuç şuydu
JSON encoded in 0.17906808853149 seconds
PHP serialized in 0.4260368347168 seconds
json_encode() was roughly 137.92% faster than serialize()
Konuyu irdeleyin :
http://www.google.com.tr/search?sourceid=chrome&ie=UTF-8&q=json_encode+vs+serialize
Bendeki sonuç şuydu
JSON encoded in 0.17906808853149 seconds
PHP serialized in 0.4260368347168 seconds
json_encode() was roughly 137.92% faster than serialize()
Konuyu irdeleyin :
http://www.google.com.tr/search?sourceid=chrome&ie=UTF-8&q=json_encode+vs+serialize
<?php ini_set( 'display_errors', 1 ); error_reporting( E_ALL ); $testArray = fillArray( 0, 4 ); //print_r($testArray ); $start = microtime( true ); json_encode( $testArray ); $jsonTime = microtime( true ) - $start; echo "JSON encoded in $jsonTime seconds<br>"; $start = microtime( true ); serialize( $testArray ); $serializeTime = microtime( true ) - $start; echo "PHP serialized in $serializeTime seconds<br>"; if ( $jsonTime < $serializeTime ) echo "json_encode() was roughly " . number_format( ($serializeTime / $jsonTime - 1 ) * 100, 2 ) . "% faster than serialize()"; else if ( $serializeTime < $jsonTime ) echo "serialize() was roughly " . number_format( ($jsonTime / $serializeTime - 1 ) * 100, 2 ) . "% faster than json_encode()"; else echo 'Unpossible!'; function fillArray( $depth, $max ) { static $seed; if ( is_null( $seed ) ) $seed = array( 1,'a',2,'b',3,'c',4,'d',5,'e',6,'f',7,'g',8,'h',9,'i',0,'j' ); if ( $depth < $max ) { $node = array(); foreach ( $seed as $key ) $node[$key] = fillArray( $depth + 1, $max ); return $node; } return 'empty'; } ?>
Subscribe to:
Posts (Atom)