Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - thcom

Stran: 1 2 [3] 4 5 ... 10
31
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 02. 03. 2018, 06:43:05 »

1) už jne kvalita připojení a latence v hospodě v centru prahy s kamenným barákem... (optiku dokopat na žižkov někam je DOST problém např..

a jeste ve sklepe :(

32
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 02. 03. 2018, 06:42:05 »
Zaujimala by ma struktura tej tabulky ucty.

Kód: [Vybrat]
MariaDB [pokladna]> describe ucty;
+-------------------------+----------------------+------+-----+---------------------+----------------+
| Field                   | Type                 | Null | Key | Default             | Extra          |
+-------------------------+----------------------+------+-----+---------------------+----------------+
| id                      | int(1)               | NO   | PRI | NULL                | auto_increment |                                                                                                                                                                         
| lock_id                 | int(1)               | NO   |     | NULL                |                |                                                                                                                                                                         
| typ                     | set('P','N','I','Z') | NO   | MUL | P                   |                |                                                                                                                                                                         
| merged_to               | int(1)               | NO   |     | NULL                |                |                                                                                                                                                                         
| merged_at               | datetime             | NO   |     | NULL                |                |                                                                                                                                                                         
| splitted_from           | int(1)               | NO   |     | NULL                |                |
| splitted_at             | datetime             | NO   |     | NULL                |                |
| inv_smeny               | set('A','N')         | YES  |     | N                   |                |
| pers                    | set('A','N')         | YES  |     | N                   |                |
| zaloha                  | int(1)               | NO   |     | NULL                |                |
| certifikat              | int(1)               | NO   |     | 0                   |                |
| pokec                   | varchar(25)          | NO   |     | NULL                |                |
| roznos_placen_krcma     | set('A','N')         | YES  |     | A                   |                |
| platba                  | set('H','K','S','P') | NO   |     | H                   |                |
| faktura                 | set('A','N')         | YES  |     | N                   |                |
| kartou_hotovost         | int(1)               | NO   |     | NULL                |                |
| tip                     | int(1)               | NO   |     | 0                   |                |
| eur_22                  | int(1)               | NO   |     | NULL                |                |
| eur_25                  | int(1)               | NO   |     | NULL                |                |
| smeny_id                | int(1)               | NO   |     | 0                   |                |
| dodavatele_id           | int(1)               | NO   |     | NULL                |                |
| dodavatele_doklad_cislo | int(1)               | NO   |     | NULL                |                |
| inv_pracoviste_id       | int(1)               | NO   |     | NULL                |                |
| cislo_dokladu           | int(1)               | NO   |     | 0                   |                |
| stoly_id                | int(1)               | NO   | MUL | 0                   |                |
| stoly_rozliseni_id      | int(1)               | NO   |     | 0                   |                |
| pocet_hostu             | int(1)               | NO   |     | 0                   |                |
| klienti_id              | int(1)               | NO   |     | 0                   |                |
| zprostredkovatel_id     | int(1)               | NO   |     | NULL                |                |
| provize                 | int(1)               | NO   |     | NULL                |                |
| provize_proc            | int(1)               | NO   |     | NULL                |                |
| provize_ucet            | int(1)               | NO   |     | NULL                |                |
| nahanec_id              | int(1)               | NO   |     | NULL                |                |
| nahnal_hlav             | int(1)               | NO   |     | NULL                |                |
| cash_flow_id            | int(1)               | NO   |     | NULL                |                |
| cash_flow_zaplaceno     | int(1)               | NO   |     | NULL                |                |
| faktury_sek_id          | int(1)               | NO   |     | NULL                |                |
| osoby_id                | int(1)               | NO   |     | 0                   |                |
| open                    | timestamp            | NO   |     | current_timestamp() |                |
| closed                  | datetime             | NO   |     | 0000-00-00 00:00:00 |                |
| sleva_nak               | int(1)               | NO   |     | NULL                |                |
| zaokrouhleni            | decimal(7,4)         | NO   |     | 0.0000              |                |
| placeno                 | int(1)               | NO   |     | NULL                |                |
| hash_old                | char(32)             | NO   |     | NULL                |                |
| hash_new                | char(32)             | NO   |     | NULL                |                |
| export                  | set('A','N')         | YES  |     | N                   |                |
+-------------------------+----------------------+------+-----+---------------------+----------------+
46 rows in set (0.00 sec)


33
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 28. 02. 2018, 10:52:07 »
chtel jsem o to zde pozadat jiz davno, ale porad jsem to odkladal a nemel odvahu ...

nasel by se nekdo, kdo by byl ochoten (samozrejme za stedrou uplatu) se se mnou setkat, podivat se na moji aplikaci v delphi
na nas db server a pokusit se poradit v klicovych oblastech, co zlepsit, co predelat aby se apliakce stala alespon trochu sviznejsi ?

Bylo by ode mě nezdvořilé jen zkritizovat a pak na tuhle výzvu pomoci nereagovat. Takže jestli je zájem, rád se sejdu osobně a můžeme se domluvit co s tím. Placení bych zatím neřešil, dokud si nedohodneme co a jak, beru to jako posezení s kolegou. Praha není problém, jsem už pár let "místňák" :).

V případě zájmu napiš PM a raději upozorni, že jsi to udělal...


napsal jsem PM DIKY !

34
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 28. 02. 2018, 08:03:56 »
a toto napisi radeji do noveho prispevku, protoze by to v tom predeslem slintu mohlo zapadnout

chtel jsem o to zde pozadat jiz davno, ale porad jsem to odkladal a nemel odvahu ...

nasel by se nekdo, kdo by byl ochoten (samozrejme za stedrou uplatu) se se mnou setkat, podivat se na moji aplikaci v delphi
na nas db server a pokusit se poradit v klicovych oblastech, co zlepsit, co predelat aby se apliakce stala alespon trochu sviznejsi ?

ja vim, ze bych si to mel vse nastudovat sam, taky se na to prave chci vrhnout. ale uz jenom gogleni "Waiting for table level lock
" me tak nejak zahltilo a nevim, kudy kam ...

vetsinou mi pohama, kdyz mi nekdo problem vysvetli a muzu se ptat, nez kdzy si o tom sam ctu

je mi jasny, ze vetsina z vas si klepe na celo a rika, vrat se do skoly, ale stareho psa uz novym kouskum nenaucis :(

a kor v mem veku

proto pokud se najde dostatecny masochista, nudu nesmirne rad, je mi jasny, ze to nebude levny, takze nehlaste se vsichni

restaurace je v samem centru Prahy, pokud bude potreba jsem shcopen dovezt privezt odvezt, odmena nebude pouze financni, ale samozrejme i v naturaliich po celou dobu seance :)

dekuji MOC !



35
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 28. 02. 2018, 07:54:49 »
Sleduji tohle téma od jeho začátku a pořád jsem přemýšlel, jestli se mám zúčastnit nebo ne, protože tazatel je tady už tak trochu známý tím, že o co méně věcem rozumí, o to více se do nich nadšeně pouští (nemyšleno nijak zle či útočně, prostě jen suché konstatování) a také proto, že mu postupně stejně někdo řekl něco podobného. Nicméně nakonec jak vidno jsem se rozhodl také přispět, snad to k něčemu bude...

to je krasne napsano, a nemuzu nesouhlasit ...

jak jsem jiz psal vyse, programovat jsme se naucil tak nejak sam v Borland Pascalu v me prvni praci hned po Gymplu
delali jsme nejakou databazi pacientu v nemocnici pomci nejakych DBF knihoven a bohuzel jsem v teto fazi zamrzl dodnes a to mam obavu, ze ani ty dbf knihovny jsem neumel vyuzit naplno ...

samozrejme ta moje aplikace dle toho vypada
cely muj zivot je provazeny nedodelanymi bastly (muj dum, moje firma, moje auta apod ...)  , ze kterych je ovsem mocne citit ti nadseni, ze ktarym jsou budovane ...

presne jak napsal kolega

nicmene co s tim ?

predevsim chci vsem zde podekovat, ze jste me jeste na foru nezablokovali a trpelive zopdovidate me casto prihlouple dotazy
mam toto forum moc rad, prijde mi, ze je to takova oaza v dnesni zumpe interentu, ze se tu k sobe lide chovali celem slusne, je tu opravdu velke mnozstvi hodne chytrych lidi, a clovek se vzdy dobere prinosnych rad, dokonce to funguje i tak, ze se zde daji probrat temata s linuxem ne prilis souvisejici, a vzdy se najde nekdo ochotny poradit

proto jsem se dnes rozhodl stat pravidelnym prispevovatelem, jelikoz muz prinos zde bude vzdy pravdepodobne zaporna nula, snad alespon takto mohu komunite splatit svuj dluh ...




 





 






36
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 20:28:56 »
A ještě před přechodem na innodb nastavit file-per-table, ať je to rozdělené do více souborů.

takto to zatim v /var/lib/mysql/popkladna mam

a doma se mi po prechodu z myISam na InnBD zmenila koncovky souboru z MYI na ibd tak snad se mi to uz neslouci ?

37
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 20:25:26 »
nezamykam databazi pouze dany zaznam v tabulce ucty, doud neni editace hotova, dam do lock_id id stanice, na kterem se s ni pracuje

MyISAM neumí row locky, zamyká celou tabulku.


tim lockem myslim to, ze kdzy jeden pingl otevre ucet tak do policka ucty.lock_id dam id stanice a kdyz ucet ulozi, tak dam SET lock_id = 0

pokud se ucet pokusi otevrit nekdo jiny, a lock_id <> 0 tak se zobrazi hlaska, ucet otevren na stanici baBlaBLA

tohle preci nezamkne celou tabulku, uz jenom proto ze bezne je na kazde stanici otevreny jiny ucet, mezitim se dalsi tiskne atd ...


k transakcim se priznam, jsem se jeste nedopracoval

chapu je tak, ze zavolam, begin transaction, neco se stane (blok prikazu) a potom bud commit nebo rollback

a chapu to jako ochranu celistvosti dane operace, bud se provede vse nebo nic z celeho bloku prikazu

nedovedu si predstavit jak resit kdyz na 2 stancichn otevrou stejny ucet a na kazde prida 2x gulas

v kuchyni nandaji 4x gulas a jsme v riti :(

ono totiz kdyz sectete ignoraci normoHosta blbost standartPingla a tupost OslaKuchare dstanete nebezpecne vybusny koktejl :-|

jinak presun na InnoDB chci zkustit na testovsaci DB doma mi to prislo rychlejsi

38
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 19:24:38 »
moje konfigurace mariaDB

Kód: [Vybrat]
# MariaDB database server configuration file.
#
# You can copy this file to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc_messages_dir = /usr/share/mysql
lc_messages = en_US
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
#
# * Fine Tuning
#
max_connections = 100
connect_timeout = 5
wait_timeout = 600
max_allowed_packet = 16M
thread_cache_size       = 128
sort_buffer_size = 4M
bulk_insert_buffer_size = 16M
tmp_table_size = 32M
max_heap_table_size = 32M
#
# * MyISAM
#
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched. On error, make copy and try a repair.
myisam_recover_options = BACKUP
key_buffer_size = 128M
#open-files-limit = 2000
table_open_cache = 400
myisam_sort_buffer_size = 512M
concurrent_insert = 2
read_buffer_size = 2M
read_rnd_buffer_size = 1M
#
# * Query Cache Configuration
#
# Cache only tiny result sets, so we can fit more in the query cache.
query_cache_limit = 128K
query_cache_size = 64M
# for more write intensive setups, set to DEMAND or OFF
#query_cache_type = DEMAND
#
# * wLogging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
# general_log_file        = /var/log/mysql/mysql.log
# general_log             = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# we do want to know about network errors and such
log_warnings = 2
#
# Enable the slow query log to see queries with especially long duration
#slow_query_log[={0|1}]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time =
#log_slow_rate_limit = 1000
log_slow_verbosity = query_plan

#log-queries-not-using-indexes
#log_slow_admin_statements
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id = 1
#report_host = master1
#auto_increment_increment = 2
#auto_increment_offset = 1
#log_bin = /var/log/mysql/mariadb-bin
#log_bin_index = /var/log/mysql/mariadb-bin.index
# not fab for performance, but safer
#sync_binlog = 1
expire_logs_days = 10
max_binlog_size         = 100M
# slaves
#relay_log = /var/log/mysql/relay-bin
#relay_log_index = /var/log/mysql/relay-bin.index
#relay_log_info_file = /var/log/mysql/relay-bin.info
#log_slave_updates
#read_only
#
# If applications support it, this stricter sql_mode prevents some
# mistakes like inserting invalid dates etc.
#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL
sql_mode =""
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_storage_engine = InnoDB
# you can't just change log file size, requires special procedure
#innodb_log_file_size = 50M
innodb_buffer_pool_size = 256M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_open_files = 400
innodb_io_capacity = 400
innodb_flush_method = O_DIRECT
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem

#
# * Galera-related settings
#
[galera]
# Mandatory settings
#wsrep_on=ON
#wsrep_provider=
#wsrep_cluster_address=
#binlog_format=row
#default_storage_engine=InnoDB
#innodb_autoinc_lock_mode=2
#
# Allow server to accept connections on all interfaces.
#
#bind-address=0.0.0.0
#
# Optional setting
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completion

[isamchk]
key_buffer = 16M

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/

39
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 19:22:22 »
dle iotop to vypada ze mysqld hrabne na disk jenom sem tam obcas
Taky co bys tam chtel zapisovat ... i kdybys tech lidi mel 100, tak ti vygenerujou mozna s velkou davkou fantazie 1 update za sekundu.

Tzn v kazdym pripade vis, ze ti stacej dva libovolny SATA disky do zrcadla aby to nechciplo s mrtvym diskem. SSD nanic nepotrebujes.

nechtel bych zapisovat nic, pouze jsem odpovidal na dotaz kolegy

40
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 19:19:49 »
Podle názvu proměnné lock_id soudím, že aplikace nečeká na server, ale na druhého číšníka, který má tu databázi zamknutou pro sebe. Jak už bylo uvedeno výše, ta aplikace je blbě napsána. Databáze se nezamyká, pokud to není nezbytně nutné. Ten Synology by to hravě zvládl a nudil by se u toho.

Aby bylo jasno: Tohle by zvládlo i Arduino, ale za této situace ti nepomůže ani nadupaný Xeon. Oprav aplikaci.


nezamykam databazi pouze dany zaznam v tabulce ucty, doud neni editace hotova, dam do lock_id id stanice, na kterem se s ni pracuje

nedokazu si predstavit, jak to lze udelat jinak :(

41
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 18:30:15 »
Nečeká databáze na disky? Jestli občas chybí nějaký index, tak si možná vytváří pomocné soubory, které ukládá na disk... Pak by třeba stačilo tohle přesměrovat do tmpfs.

dle iotop to vypada ze mysqld hrabne na disk jenom sem tam obcas

42
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 17:21:01 »
... Waiting for table level lock ... lol

Mno jestli ti to pri kazdym updatu zamkne vsechny tabulky v cely databazi ...

Rek bych, se jednak ti chybej indexy, a druhak mas spatne navrzenou strukturu a system fungovani ty databaze. A je to krasna ukazka toho, jak ani nadupanej HW nevyresi to, co nekdo blbe napise.

Ta i3ka tohle musi davat se zatizenim 0.

super, diky za nasmerovani

tak prvni krok, jsem udelal, ze zmenim db engine z MyISAM na InnoDB, je to spravne ?

indexy pouzivam snad spravne, kazda tabulka ma primarni index na poli id a pokud tabulky spojuji
napriklad, ucty JOIN ucty_polozky ON ucty.id = ucty_polozky.ucty_id tak na tom ucty_id mam index

zkusim sem radeji dat moji konfiguraci mariaDB ke kontrole asi :)


43
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 16:06:18 »
Prosimtě, jestli ti i3 s 8GB RAM nezvládá to, že pingl jednou za deset minut namarkuje dvě piva a guláš, tak fakt neřeš hardware, ale tu doprasenou aplikaci.

 :o ::)

on je tam pres obedy nastesti vetsi cvrkot, ale uznavam, ze moje delphi aplikace se znalostmi pascalu z let 90 minuleho stoleti nebude prilis optimalni

akorat se nedokazu dobrat toho, jak zjistit kde se to flaka :(

44
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 16:02:18 »
IMO chybí indexy a mysql cykluje na sekvenčním procházení.

Mysql příkaz 'show full processlist' ti vypíše, co zrovna jednotlivé konexe klientů dělají, včetně query. Určitě tam najdeš nějaké dlouho běžící. Pak je spustíš v klientovi s explain, přidáš chybějící indexy a za pár iterací se bude db server flákat.

procesy jsem zkousel, neni tam nic zavadneho

zkusim snizit ten limit na sledovani long query

Kód: [Vybrat]
Id User Host db Command Time State Info Progress
1 system user NULL Daemon NULL InnoDB purge coordinator NULL 0.000
3 system user NULL Daemon NULL InnoDB purge worker NULL 0.000
2 system user NULL Daemon NULL InnoDB purge worker NULL 0.000
4 system user NULL Daemon NULL InnoDB purge worker NULL 0.000
5 system user NULL Daemon NULL InnoDB shutdown handler NULL 0.000
117 kasa 10.0.0.72:49716 pokladna Query 0 Waiting for table level lock UPDATE ucty SET lock_id = 0 WHERE lock_id = 10 0.000
120 kasa 10.0.0.11:63593 pokladna Query 0 updating UPDATE ucty SET lock_id = 0 WHERE lock_id = 11 0.000
508 root localhost NULL Query 0 init show full processlist 0.000
509 root localhost NULL Sleep 0 NULL 0.000

45
Server / Re:Poraďte vhodný hardware na server pro MySQL
« kdy: 27. 02. 2018, 14:52:14 »
mozna resim problem ze spatne strany

kdyz se podivam na server pres htop tak mi tam bezi 2 procesy /usr/sbin/mysqld a dohromady berou 90 - 100 % CPU

zkousel jsem dat logovat pomaly sql dotazy ale v logu nic neni, mam limit 6 sec, ma zkusit limit snizit

jak se da podprobnei zjistit, co ta db dela a na cem se flaka ?

je tam mariaDB 10.2.13 server je ubuntu xenial


 

Stran: 1 2 [3] 4 5 ... 10