mysqldump ve mydumper performans karşılaştırması.
mydumper multi thread çalışan bir mysql dump uygulaması.
Ben mysqldump ile mydumper performanslarını test ettim. Sonuçlar aşağıda.
Önce 1.5 milyon kayıtlı bir veritabanı üstünde test ettim.
mysql> SELECT SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''; +-----------------+ | SUM(TABLE_ROWS) | +-----------------+ | 1522578 | +-----------------+
[root@localhost backup]# time /usr/bin/mysqldump--opt --verbose --max_allowed_packet=500M --single_transaction --net_buffer_length=100M -t --skip-add-locks --skip-extended-insert --skip-comments > mysqldump.sql real 0m9.933s user 0m6.114s sys 0m0.598s [root@localhost backup]# time mydumper -B -o /root/backup/ real 0m5.406s user 0m2.555s sys 0m0.353s
Gördüğünüz gibi mysqldump yaklaşık 2 katı daha fazla sürüyor.
Şimdi kayıt sayısı 25 milyon olan bir veritabanı üstünde test edelim.
mysql> SELECT SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''; +-----------------+ | SUM(TABLE_ROWS) | +-----------------+ | 28570568 | +-----------------+
[root@localhost backup]# time /usr/bin/mysqldump--opt --verbose --max_allowed_packet=500M --single_transaction --net_buffer_length=100M -t --skip-add-locks --skip-extended-insert --skip-comments > mysqldump.sql real 3m24.774s user 1m44.076s sys 0m12.374s [root@localhost backup]# time mydumper -B -o /root/backup/ real 1m58.312s user 0m44.470s sys 0m5.543s
Evet sonuç yine değişmedi. mydumper mysqldump’tan daha hızlı.
Mydumper : www.mydumper.org
Posted in Linux, MySQL, Web Development on July 31st, 2012 by Kürşad DARA | | 0 Comments
Apache ve PHP’nin versiyon bilgilerini gizleme
Apache ve PHP’nin versiyon bilgilerini headerdan gizleme ihtiyacı duydum. Dursun diye buraya da koyayım bari.
Apache’nin versiyon bilgilerini saklamak için :
/etc/httpd/conf/httpd.conf dosyasında ( ya da sizin conf dosyasınız nerede ise ) aşağıdaki parametreleri ayarlayın.
ServerSignature Off ServerTokens ProductOnly
Siz aşağıdaki tablodan yararlanıp isterseniz başka değer verebilirsiniz.
ServerToken | Görüntülenecek Bilgi |
ProductOnly | Server: Apache |
Major | Server: Apache/2 |
Minor | Server: Apache/2.0 |
Minimal | Server: Apache/2.0.55 |
OS | Server: Apache/2.0.55 (Redhat) |
Full(veya boş) | Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5 |
Parametreleri ayarlamadan önce :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:45:50 GMT Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 X-Powered-By: PHP/5.2.9 Connection: close Content-Type: text/html
Parametreleri ayarladıktan sonra :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:47:56 GMT Server: Apache X-Powered-By: PHP/5.2.9 Connection: close Content-Type: text/html
Gördüğünüz gibi Apache bilgileri gizlendi.
Şimdi PHP versiyon bilgilerini gizleyelim.
/etc/php.ini dosyasında ( sizin config dosyanız nerede ise ) aşağıdaki parametreleri ayarlayın.
expose_php Off
Parametreleri ayarladıktan sonra :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:48:47 GMT Server: Apache Connection: close Content-Type: text/html
Gördüğünüz gibi PHP versiyon bilgisi gitti.
Bu parametreleri değiştirdikten sonra apache’yi restart etmeniz gerekmektedir.
Posted in Apache, Linux, PHP on April 16th, 2012 by Kürşad DARA | | 0 Comments
Facebook uygulamanızı kullanan kullanıcıların duvarına otomatik veri yollama
Facebook uygulamalarınızı kullanan kullanıcıların duvarlarına otomatik veri yollamak için aşağıdaki kod bloğunu kullanabilirsiniz.
$attachment = array('message' => 'mesajınız', 'name' => 'Uygulama adı', 'caption' => "Uygulama adı", 'link' => 'Uygulama linki', 'description' => 'İçerik', 'picture' => 'resim tam linki' ); $result = $facebook->api('/me/feed/', 'post', $attachment);
Not : İlgili javascriptleri ve api kodlarını da sayfanıza include etmiş olmanız gerekmektedir.
Posted in PHP, Web Development on June 14th, 2011 by Kürşad DARA | | 0 Comments
Yazdığınız PHP programlarının güvenliği için bir checklist
İncelenmesi gereken güzel bir checklist.
Güvenli mi yazdığınız programlar ?
Checklist için tıklayınız.
Posted in PHP, Web Development on May 12th, 2011 by Kürşad DARA | | 0 Comments
Facebook sayfalarda kullanıcının beğenip beğenmediğini tespit etme.
Kodunuzun en başında aşağıdaki kodu kullanırsanız kullanıcının sayfayı beğenip beğenmediğini anlayabilirsiniz.
function parsePageSignedRequest() { if (isset($_REQUEST['signed_request'])) { $encoded_sig = null; $payload = null; list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2); $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true)); return $data; } return false; } if($signed_request = parsePageSignedRequest()) { if($signed_request->page->liked) { echo "Sayfayı beğendiğiniz için teşekkürler"; } else { echo "Önce sayfayı beğenmeniz gerekmektedir."; echo("< s c r i p t > top.location.href='http://www.facebook.com/pages/blabla/198687143423423'< / s c r i p t >"); } }
Posted in PHP, Web Development on May 11th, 2011 by Kürşad DARA | | 0 Comments
jQuery $ is not defined hatası
jQuery kullanırken firefox ta firebug ile debug ederken aşağıdaki hatayı alıyorsanız çözüm basit.
$ is not defined $(document).ready(function(){
Gerekli javascript dosyalarını include ederken jQuery dosyasını kendi kullandığınız javascript dosyasından sonra include etmişsinizdir o yüzden bu hatayı alıyorsunuzdur.
Yani;
şeklinde yaparsanız kuvvetle muhtemel bu hatayı alacaksınız. Ama;
şeklinde include ederseniz sorununuz düzelecektir.
Posted in JavaScript, jQuery, Web Development on May 5th, 2011 by Kürşad DARA | | 0 Comments
Bağlantı cihazına göre web sitesine otomatik yönlendirme.
Web sitenizin pc ve mobile versiyonunu yaptıysanız ve otomatik yönlendirme yapmak isterseniz aşağıdaki kodu kullanabilirsiniz.
< ?php $mobile_browser = '0'; if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))){ $mobile_browser++; } if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){ $mobile_browser++; } $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); $mobile_agents = array( 'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac', 'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno', 'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-', 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-', 'newt','noki','oper','palm','pana','pant','phil','play','port','prox', 'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar', 'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp', 'wapr','webc','winw','winw','xda','xda-'); if(in_array($mobile_ua,$mobile_agents)){ $mobile_browser++; } if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) { $mobile_browser++; } if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) { $mobile_browser=0; } if($mobile_browser>0){ header('Location: http://siteniz/mobile_versiyonu'); } // else { // header('Location: http://siteniz/pc_versiyonu'); // } ?>
Posted in PHP, Web Development on April 26th, 2011 by Kürşad DARA | | 0 Comments
Php Curl ile bir sayfadan resim kaydetmek.
< ?php $url = "http://www.bilgiakademisi.net/images/s/logo.jpg"; $agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.9) "; $agent .= "Gecko/20061206 Firefox/1.5.0.9'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); $httpfile = curl_multi_getcontent ($ch); file_put_contents("/tmp/tmp.jpg",$httpfile); ?>
Posted in Linux, PHP on January 26th, 2009 by Kürşad DARA | | 0 Comments
java.lang.OutOfMemoryError: Java heap space hatası
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Eğer bu hatayı alıyorsanız bir şekilde javaya ram yetmiyor demektir.
Posted in Java on January 6th, 2008 by Kürşad DARA | | 0 Comments