BaaL Mesaj tarihi: Temmuz 27, 2015 Paylaş Mesaj tarihi: Temmuz 27, 2015 intel xeon quad core 2.4ghz cpu ... 8gb ram Total database 8000 kusur table var. Database, gps takip cihazlari icin kullaniyor. Her takip cihazinin (~8k) kendi table'i var. table sayisi ondan yuksek. my.ini dosyasinin mevcut ayarlari. Google arastirmalariyla bu kadar tweak yapabildim ; daha başka neler yapabilirim? ------------------------------------------ # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /tmp/mysql.sock # Here follows entries for some specific programs # The MySQL server [wampmysqld] port = 3306 socket = /tmp/mysql.sock key_buffer = 64M max_allowed_packet = 1M table_definition_cache = 400 sort_buffer_size = 32M net_buffer_length = 8K read_buffer_size = 10M read_rnd_buffer_size = 5M myisam_sort_buffer_size = 100M basedir=c:/wamp/bin/mysql/mysql5.6.12 log-error=c:/wamp/logs/mysql.log datadir=c:/wamp/bin/mysql/mysql5.6.12/data # Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking # Disable Federated by default skip-federated # Replication Master Server (default) # binary logging is required for replication log-bin=mysql-bin # binary logging format - mixed recommended binlog_format=mixed # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted server-id = 1 # Replication Slave (comment out master section to use this) # # To configure this host as a replication slave, you can choose between # two methods : # # 1) Use the CHANGE MASTER TO command (fully described in our manual) - # the syntax is: # # CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=, # MASTER_USER=, MASTER_PASSWORD= ; # # where you replace , , by quoted strings and # by the master's port number (3306 by default). # # Example: # # CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, # MASTER_USER='joe', MASTER_PASSWORD='secret'; # # OR # # 2) Set the variables below. However, in case you choose this method, then # start replication for the first time (even unsuccessfully, for example # if you mistyped the password in master-password and the slave fails to # connect), the slave will create a master.info file, and any later # change in this file to the variables' values below will be ignored and # overridden by the content of the master.info file, unless you shutdown # the slave server, delete master.info and restart the slaver server. # For that reason, you may want to leave the lines below untouched # (commented) and instead use CHANGE MASTER TO (see above) # # required unique id between 2 and 2^32 - 1 # (and different from the master) # defaults to 2 if master-host is set # but will not function as a slave if omitted #server-id = 2 # # The replication master for this slave - required #master-host = # # The username the slave will use for authentication when connecting # to the master - required #master-user = # # The password the slave will authenticate with when connecting to # the master - required #master-password = # # The port the master is listening on. # optional - defaults to 3306 #master-port = # # binary logging - not required for slaves, but recommended #log-bin=mysql-bin # Point the following paths to different dedicated disks #tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = C:mysqldata/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = C:mysqldata/ #innodb_log_arch_dir = C:mysqldata/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 750M innodb_additional_mem_pool_size = 50M # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 160M innodb_log_buffer_size = 20M innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [mysqld] port=3306 ---------------------------------------------------------- Asagidakiler de mysqltuner dan aldiklarim. Az once my.ini de bi kac ayar degistirip mysql i restart yaptim o yuzden mysqltunerin verileri %100 saglikli olmayabilir ama 1 hafta calistirip baktigimdaki sonuclarla pek bi fark yok. fragmented tables sayisi bayagi bi yuksek , bilemedim. bazilari optimize yapma diyo , bazilari yap diyo. MySQL Tuner 0.7 - Peter Chapman Successfully authenticated with no password - SECURITY RISK! Currently running supported MySQL version 5.6.12-log Operating on 64-bit architecture Archive Engine Installed Berkeley DB Engine Not Installed Federated Engine Not Installed InnoDB Engine Installed ISAM Engine Not Installed NDBCLUSTER Engine Not Installed Data in InnoDB tables: 7G (Tables: 5003) Data in MyISAM tables: 3G (Tables: 2929) Total fragmented tables: 2682 Up for: 40m 0s (1M q [523.000 qps], 134K conn, TX: 1G, RX: 93M) Reads / Writes: 84% / 16% Total buffers: 901.0M global + 47.5M per thread (151 max threads) Maximum possible memory usage: 7.9G (98% of installed RAM) Slow queries: 1% (6/1M) Highest usage of available connections: 49% (73/151) Key buffer size / total MyISAM indexes: 64.0M/7.8M Key buffer hit rate: 99% (168K cached / 43 reads) Query cache efficiency: 0% (0 cached / 483K selects) Query cache prunes per day: 0 Sorts requiring temporary tables: 0% (0 temp sorts / 30K sorts) Temporary tables created on disk: 43% (280 on disk / 662 total) Thread cache hit rate: 99% (680 created / 134K connections) Table cache hit rate: 3% (2K open / 58K opened) Open file limit used: 47% (2K/5K) Table locks acquired immediately: 99% (580K immediate / 580K locks) InnoDB data size / buffer pool: 7.8G/750.0M Run OPTIMIZE TABLE to defragment tables for better performance MySQL started within last 24 hours - recommendations may be inaccurate Reduce your overall MySQL memory footprint for system stability When making adjustments, make tmp_table_size/max_heap_table_size equal Reduce your SELECT DISTINCT queries without LIMIT clauses Increase table_cache gradually to avoid file descriptor limits MySQL's maximum memory usage is dangerously high Add RAM before increasing MySQL buffer variables query_cache_limit (> 1M, or use smaller result sets) tmp_table_size (> 16M) max_heap_table_size (> 16M) table_cache (> 3000) innodb_buffer_pool_size (>= 7G) Scan Complete Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Darestan Mesaj tarihi: Temmuz 27, 2015 Paylaş Mesaj tarihi: Temmuz 27, 2015 https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Temmuz 27, 2015 Paylaş Mesaj tarihi: Temmuz 27, 2015 Tablolarin tasarimi kotu ise, duzgun index'lenmemisse ne yaparsan yap bosuna. Oncelikle ona bakmak lazim. Bi ikincisi de cache'i arttirip mumkun oldukta memory ustunden serve etmek lazim. Ozellikle data bir kac gb ise, idle olan memory miktarindan az ise inanilmaz efektif olabiliyo. Onun disinda mysqltuner'in tavsiyerlerine bakarsin iste. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
vaperon Mesaj tarihi: Temmuz 27, 2015 Paylaş Mesaj tarihi: Temmuz 27, 2015 Açıkçası dataları işleyen server ve çağıran server'ın ciddi anlamda iyi code edilmesi lazım. İşin mysql tweaki ile halledilmesinden çok çok daha kolay. Şu anda 8000+ client seviyesinde 5snde 1, 5snlik gps pozisyonu gönderen, bunun yanında kameralı görüntüleme sistemlerinin yönetimini yapıyorum. Senin sorunun her aygıtın gps kayılarının ayrı tabloda tutulması. Günlük kayıtlar çok çok daha başarılı çalışabilir. Sistemlerinizi aldığınız çinli üreticiden destek almanızı tavsiye ederim bu konu ile ilgili. Şu anda iki çinli mühendisle beraber kalıyorum amk. Sırf işin daha akıcı olmasını sağlayabilmek için. Türkiyede bir firma üzerinden sistemleri aldıysanız ve adam gibi çalışan bir sistem istiyorsanız pm :D Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gladmir Mesaj tarihi: Temmuz 31, 2015 Paylaş Mesaj tarihi: Temmuz 31, 2015 BaaL said: Total database 8000 kusur table var. Sorun en basta burda. Table basina unique index mevcut, mysql index yonetiminde zaten notorious , unique index lerin ustunde illaki baska indexler de vardir kesin. Server i dikey de scale etmek gerekli. Ram i arttirip memory/cache den daha cok cevap vermesine izin vermen gerekiyor, diger post larda yazildigi gibi. Tabii detayli bilmeden mimariyi ahkam kesmemek gerekiyor ama diyelim ki 8001. device i ekleyecegim, bu durumda database e table mi eklemem gerekiyor? Soruyu yazarken aklima gelen baska bir nokta; Belkide ortamda 8000 tane unique device type var, bu type lardan milyonlarca var calisan, bu durumda bir noktaya kadar table eklenmesine ok denilebilir. Bu durumda da neden relational database, neden document based storage kullanilmamis diye sorabiliriz elin cinlisine ... Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BaaL Mesaj tarihi: Ağustos 12, 2015 Konuyu açan Paylaş Mesaj tarihi: Ağustos 12, 2015 Gladmir said: BaaL said: Total database 8000 kusur table var. Sorun en basta burda. Table basina unique index mevcut, mysql index yonetiminde zaten notorious , unique index lerin ustunde illaki baska indexler de vardir kesin. Server i dikey de scale etmek gerekli. Ram i arttirip memory/cache den daha cok cevap vermesine izin vermen gerekiyor, diger post larda yazildigi gibi. Tabii detayli bilmeden mimariyi ahkam kesmemek gerekiyor ama diyelim ki 8001. device i ekleyecegim, bu durumda database e table mi eklemem gerekiyor? Soruyu yazarken aklima gelen baska bir nokta; Belkide ortamda 8000 tane unique device type var, bu type lardan milyonlarca var calisan, bu durumda bir noktaya kadar table eklenmesine ok denilebilir. Bu durumda da neden relational database, neden document based storage kullanilmamis diye sorabiliriz elin cinlisine ... 8000 rakami kusuratliydi, su an yaklasik 8400 civari. Ve evet, kullanici yeni device eklendiginde otomatik table aciliyor. Software yaklasik 300-400 degisik device destekliyor. Bizim kullandigimiz yaklasik 9-10 degisik device var. Gerci hepsinin database e eklenis sekli ayni. Date,coordinates,speed, parametreler vsvs. Developerlar bu arada litvanya'dan. Bi ara sormustum gunluk kayit yerine neden her cihaz icin ayri bi table tutmayi tercih ettiniz diye. Cevabi "Separate table for every GPS tracker makes history and reports to work faster." Cache' artirdim. Mysql hala cpu ya abaniyor. Ram kullanimi 1.5gb i gecmiyor. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Ağustos 12, 2015 Paylaş Mesaj tarihi: Ağustos 12, 2015 "Separate table for every GPS tracker makes history and reports to work faster" means "we have no idea what indexing is". Pic related http://www.quickmeme.com/img/0e/0ec58dd764b8f2614611249e51e7c879701a16a3a09daf1fca97f43f7578fdb9.jpg Query cache ne durumda sunucuda ? https://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BaaL Mesaj tarihi: Ağustos 13, 2015 Konuyu açan Paylaş Mesaj tarihi: Ağustos 13, 2015 di said: Query cache ne durumda sunucuda ? https://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html Hatirlattigin icin tesekkurler. Query cache'ler kapaliymis. (query_cache_type=0). Actiktan sonra bariz bi performans artisi oldu. have_query_cache=yes line'i beni yaniltti. Bu arada mevcut configuration = TCP listener ve Wamp (mysql,apache,php) ayni sunucuda (windows). Listenerlarimiz .net , windows only. Wamp'i ayri, daha iyi speclere sahip bi sunucuya tasimak istiyoruz. UK'de bulundugumuz bolgeden bir kac dba firmayla konustuk, sacma sapan fiyatlar istiyorlar. Migration isini once replication set-up yapip (master-slave) , listenerlari yeni slave'in ip sine yonlendirerek yapicaz. Ilgilenen, yardimci olmak isteyen varsa pm atsin, ucrette anlasabiliriz. Aksi taktirde stackoverflow dan topladigim bilgilerle girisicem. (not: table larin alayi myisam, en son aldigim backip flush tables with read lock yaptiktan sonra 4-5 saat surmustu.) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
elesso Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 10.000'de bi server daha ekleyin bence asdf Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
-Bonesoul- Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 di'nin dediği gibi o gavur arkadaşların ne yaptığını bilmeden otu boku relational db'ye basma sevdasından kaynaklı. tuner'ın en sonda bahsettiği config önerilerini uyguladın mı? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BaaL Mesaj tarihi: Ağustos 13, 2015 Konuyu açan Paylaş Mesaj tarihi: Ağustos 13, 2015 bombilo said: di'nin dediği gibi o gavur arkadaşların ne yaptığını bilmeden otu boku relational db'ye basma sevdasından kaynaklı. tuner'ın en sonda bahsettiği config önerilerini uyguladın mı? Evet son kisimdaki ayarlarin hepsini uyguladim. Query cache ozellikle cok farketti. Mysql verileri biraz daha cok ram'den islemeye basladi, cpu rahatladi. Bunlar tabi gecici cozumler ama simdilik biraz daha nefes alabildik. En kisa zamanda serveri baska bir makinaya tasimayi dusunuyoruz. Mevcut configuration quad core 2.6ghz , 8gb ram , windows os. Arti baska bir windows server daha var, sadece listener kurulu. Listener apache uzerinden http veri gonderiyor bu makinaya. Listenerlari oldugu yerde birakip mysql, ve apache yi yeni linux server'a tasimak istiyoruz. (2.4ghz 8 core, 16gb ram). Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BaaL Mesaj tarihi: Ağustos 13, 2015 Konuyu açan Paylaş Mesaj tarihi: Ağustos 13, 2015 elesso said: 10.000'de bi server daha ekleyin bence asdf Her 10.000 de bir bi server eklemek zaten su asamada daha mantikli gozukuyor. Uk'den bir kac firmayla software'in sifirdan yazilimi hakkinda konustuk. Sacma sapan fiyatlar verdi cogu. Gps-Gate 90.000$ istedi falan. Ayligi $70'den 10 tane server dizerim daha iyi :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
-Bonesoul- Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 şöyle bir tuning primer'de var istersen ona da bir göz atıver; https://launchpadlibrarian.net/78745738/tuning-primer.sh ayrıca Slow queries: 1% demiş ama slow log'a bir göz atsan yine de fena olmaz genel fikir açısından yazılımın çok atraksiyonu yoksa document store ile yeniden yazalım :D birde yeni kuracağın server'ı konfigure ederken bak şurada kullanılan tool'ları kullanabilirsin; https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-optimize-mysql-perf/ Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
RaidenXelRu Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 scale up olmaya ugrasmak bir yere kadar yanliz :) eger read writedan fazla gerceklesiyorsa, bir tane daha server ekleyin yanina replicate etsin, read querylerini bolusturup ona load yollayin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BaaL Mesaj tarihi: Ağustos 13, 2015 Konuyu açan Paylaş Mesaj tarihi: Ağustos 13, 2015 bombilo said: şöyle bir tuning primer'de var istersen ona da bir göz atıver; https://launchpadlibrarian.net/78745738/tuning-primer.sh ayrıca Slow queries: 1% demiş ama slow log'a bir göz atsan yine de fena olmaz genel fikir açısından yazılımın çok atraksiyonu yoksa document store ile yeniden yazalım :D birde yeni kuracağın server'ı konfigure ederken bak şurada kullanılan tool'ları kullanabilirsin; https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-optimize-mysql-perf/ Yazilimin atraksiyonu cok. www.gpslive.co.uk gps@demo 123456 Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 RaidenXelRu said: scale up olmaya ugrasmak bir yere kadar yanliz :) eger read writedan fazla gerceklesiyorsa, bir tane daha server ekleyin yanina replicate etsin, read querylerini bolusturup ona load yollayin. Adam hakli beyler. Optimizasyon olmadan baya yalan o scaling olayi evet. Benim soyle cocugum gibi baktigim bi sunucu var mesela; http://i.imgur.com/nqw8UoJ.png DBA'le birlikte oturup cogunu yeniden yarattik SP'lerin tablolarin falan. Baya baya aylarimizi yillarimizi aldi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
RaidenXelRu Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 Tas gibiymis ustad masallah :D Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 Yuh 8000 table ne abi? Her cihazın kendi veritabanına ihtiyacı olması bi yana, veri analizinin ham veri üzerinden çalışması neden ki? Yani şu an uzaktan görüldüğü kadarıyla yapılmak istenen iş için ilişkisel bi veritabanı kullanmak yanlış. Koyarsın verini Elastic'e, adam gibi indexlersin, hem analizini çalıştırırsın, hem verini çeker koyarsın, gül gibi geçinip gidersin. Bi de GPS verisi denmiş, aha bunun için de Elastic biçilmiş kaftan işte, mis gibi çakarsın koordinatları indexe, ister uzaklığa göre, ister poligonla ararsın, 15-20ms sonra alırsın cevabını sdf Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
RaidenXelRu Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 Paticik icin inanilmaz diagram drawing skillimi kullandim, boyle hizmet yok beyler :D Bak boyle scale ediceksin: Loadbalancerda tutucaksin logic'i: If query == read: cpu usage a gore dusuk olan slave e yolla if master.g*tegeldi(): herhangi bir slave i master olmak icin promote et Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
RaidenXelRu Mesaj tarihi: Ağustos 13, 2015 Paylaş Mesaj tarihi: Ağustos 13, 2015 Tabi bunu yapmak 2 conditional yazmaktan daha fazla is gerektiriyor ahhaha :D Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BaaL Mesaj tarihi: Ağustos 14, 2015 Konuyu açan Paylaş Mesaj tarihi: Ağustos 14, 2015 "The issue with having daily logs for all devices is; lets say if you have 1 million rows in one table. If they would be joined into one, this would cause even bigger problem. It would be very slow. We tested that before designing the structure." Developer arkadasin yorumu. Neyse uzun lafin kisasi ; 1 haftadir ayarlari duzelte duzelte bayagi adam ettim. Kimse mysql'i kurcalamadigi icin hala ilk gun kurduklari default ayarlardaydi mysql. Su an mysql'in cpu kullanimi %40-50 lerden %10-20 lere indi. Mevcut makina quad core 2.6ghz, wamp'in haricinde listener da calisiyor. Ilk adim olarak mysql ve apache'yi baska bi server'a tasimamiz lazim. 8 core 8gb ram bi linux server ayarladim. Replication kurup migrate yapmamiz lazim ki downtime olmasin. Replication set-up icin yardimci olmak isteyen biri varsa whatsapp (+447737635329) , skype : [email protected]'dan ulasabilir. Ucrette anlasiriz. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Dark_Soul Mesaj tarihi: Ağustos 15, 2015 Paylaş Mesaj tarihi: Ağustos 15, 2015 Wampi windows os uzerinde calistirmakla hata etmissiniz zaten, linuxa gecersiniz overall performans bariz artar. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
BaaL Mesaj tarihi: Ağustos 20, 2015 Konuyu açan Paylaş Mesaj tarihi: Ağustos 20, 2015 windows serverdaki mysql ve apache'yi yeni linux server'a taşımada ücret karşılığında destek aranıyor :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Sequo Mesaj tarihi: Ağustos 20, 2015 Paylaş Mesaj tarihi: Ağustos 20, 2015 Mysql db de hızsa olayın serverle falan uğraşmana gerek yok. Olay tamamen tablo yapısı ve en çok veri çekilen fieldlerin doğru index lenip indexlenmemesiyle alakalıdır. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar