Autor Zpráva
Peet
Profil
Dobry den,

chtel bych se zeptat jak mohu nastavit php skriptu, ktery poustim pres cron, nizsi prioritu. Importuji cronem objemne xml feedy, ktere zapisuji do databaze a je to spousty dat, a v nekterych chvilich to dost zabrzdi i frontend dotazy na mysql. Rad bych tedy nejak nastavil nizsi prioritu importu. Tzn. aby se vzdy odbavil frontend prioritne nezavisle na tom zda bezi importy nebo ne.

Diky za rady.
smitka
Profil
linux.die.net/man/1/nice
Peet
Profil
Diky, takze staci toto

nice -n 19 php some:script ?

Nebo jak mohu zjistit s jakou prioritou bezi ostatni skripty ? Jde pouze o php skript nebo i o skripty, ktere se spusti uvnitr, v tomhle pripade prave treba mysqld, ktera pote brzdi ostatni veci.

Diky
smitka
Profil
Pokud se skript pustí bez nice, tak má prioritu 0, nice bez parametrů nastaví 10 (čím vyšší, tím menší priorita). Priorita je pro proces a podprocesy jím spuštěné. DB je úplně jiný proces, takže ji to neovlivní. Ale pokud bude pomaleji běžet samotný skript, tak by mělo být i o něco menší tempo vysílání dotazů do DB.
Peet
Profil
ok, diky. otestuji a uvidim zda je to OK.


Tak to vypada, ze moc nefunguje. Ten php proces ktery spoustim cronem a ktery ma nastaveny nice ve vysledku zabira uplne minimum zateze. Vse to brzdi proces mysqld. Je nejaka moznost tedy nastavit nice pro mysqld spustene z toho php skriptu ?
Keeehi
Profil
mysqld není spouštěný PHP skriptem. mysqld je dlouhoběžící samostatný proces, který je většinou spouštěn automaticky po startu systému. PHP pak s tímto procesem jen komunikuje. Takže i když budeš mít třeba spuštěných 5 PHP procesů, tak všechny budou souběžně komunikovat stále s jedním mysqld procesem.
TomášK
Profil
Kdybys náhodou používal MyISAM, tak jde použít INSERT LOW_PRIORITY nebo INSERT DELAYED, ale nepředpokládám. Pokud ten import jen zapisuje, pak bych si vytvořil datový CSV soubor a naimportoval ho pomocí LOAD DATA. Mělo by to být daleko rychlejší a nenáročnější než provádět spousty INSERTů.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0