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 - beer

Stran: 1 [2] 3 4 ... 49
16
Vývoj / Re:Paralelní zpracování souboru | vyřešeno
« kdy: 22. 02. 2018, 02:42:32 »
Tak snad vyřešeno. S tím xargem mi to nešlo, parallel vypadá jednodušeji.


Aktuální verze skriptu:



Kód: [Vybrat]

#!/bin/bash
target="$1"


jpgfronta="$(mktemp)"
pngfronta="$(mktemp)"


find "$target" -type f -iname *.jp*g -exec du -a {} + | sort -n -r | cut -f 2 >"$jpgfronta"
find "$target" -type f -iname *.png -exec du -a {} + | sort -n -r | cut -f 2 >"$pngfronta"


cat "$jpgfronta" | parallel jpeg-recompress -q medium -l 128 -a -c -m smallfry \{} \{}
cat "$pngfronta" | parallel optipng -o7  \{} \{}


rm "$jpgfronta"
rm "$pngfronta"


exit


Funguje to pěkně rychle. Narozdíl od doplňků je to univerzální, nasadím to i na databázi fotek, protože opticky nepoznám rozdíl v kvalitě. A proč používám jpeg-recompress? Je to založené na mozjpeg od mozilly a asi nic efektivnějšího aktuálně není. Google má tuším něco podobného, ale to jsem nezkoušel.

17
Vývoj / Re:Paralelní zpracování souboru
« kdy: 21. 02. 2018, 17:29:54 »
žere, jsou povinné, zdrojový a cílový soubor. Když je to stejné, tak se optimalizuje soubor za běhu a zapíše se změna jen v případě, že soubor nebyl již optimalizovaný předtím, jpeg-recompress to řeší přidáním poznámky do metadat a při dalším spuštění nad stejným souborem soubor jednoduše přeskočí. Na rozdíl od optipng, to je hrozná brzda, která se snaží optimalizovat již optimalizované.

Vyzkouším, díky

18
Vývoj / Re:Paralelní zpracování souboru
« kdy: 21. 02. 2018, 17:07:04 »
A co třeba jen tevřít obrázky (případně přes search parametricky najít/filtrovat) v xnview a dát hromadnou konverzi?Mám ocit, že program nevyužívá jádra CPU. Případně Zoner Photo studio, zdarma

Používám Debian a Ubuntu. Na serveru nemám grafické prostředí.

ja jsem si takhle jednoduse kdysi v praveku na pocitacovem clusteru graboval cd a wav do mp3.
Jakože jednotlivé thready ripovaly jednotlivé skladby?
Nemůžu mluvit za adsfasdfasdfasd, ale řekl bych, že určitě takhle ne, laser bývá v mechanikách jen jeden. Spíše rippování do wavu v jednom vláknu a paralelní konverze všech wavů potom do komprimovaného formátu.

19
Vývoj / Re:Paralelní zpracování souboru
« kdy: 21. 02. 2018, 15:52:46 »
Nejjednodušší by bylo asi použití xargs, ale neumím to

zkusil jsem nahradit
Kód: [Vybrat]
while read line
do
printf "%s\n" "$line"
jpeg-recompress -q medium -l 128 -a -c -m smallfry "$(printf "%s\n" "$line")" "$(printf "%s\n" "$line")"
done < "$jpgfronta" &

tímto:
Kód: [Vybrat]
while read line
do
printf "%s\n" "$line"
"$(printf "%s\n" "$line")" "$(printf "%s\n" "$line")" | xargs --max-args=1 --max-procs=3 jpeg-recompress -q medium -l 128 -a -c -m smallfry
done < "$jpgfronta"

Ale mám tam nějakou chybu, obrázky to spouští jako spustitelné soubory a nepředává to cesty.

20
Vývoj / Re:Paralelní zpracování souboru
« kdy: 21. 02. 2018, 14:50:36 »
Vypadá to zajímavě, ale asi další kanón na vrabce. Ono se ti to řekne jednoduše, napíšeš si soubor build.ninja :-).

Rád bych šel cestou vrstvení standardních jednoúčelových nástrojů, aby to bylo čitelné pro mne i pro ostatní. Spočítání řádků přes wc, spočítání kolik odříznout kam přes dc, a pak případně použít head, tail či sed na vytvoření 3 různých front a & je hodit na pozadí.

Zkusím metodou pokus omyl :-).

21
Vývoj / Re:Paralelní zpracování souboru
« kdy: 21. 02. 2018, 13:46:38 »
Udělal bych to pomocí nástroje
Kód: [Vybrat]
make
. Příkladů musí být na internetu tuny, umí i paralelní zpracování.
Předpokladem je, že optimalizované verze budou v jiném adresáři (nebo budou odlišené názvem).

Mrknu na to, není to ale kanón na vrabce? A makem lze soubor po řádcích rozdělit na stejně velké části?

22
Vývoj / Re:Paralelní zpracování souboru
« kdy: 21. 02. 2018, 13:39:45 »
Udělal bych to pomocí nástroje
Kód: [Vybrat]
make
. Příkladů musí být na internetu tuny, umí i paralelní zpracování.
Předpokladem je, že optimalizované verze budou v jiném adresáři (nebo budou odlišené názvem).

Ten předpoklad na mém malém web serveru nelze splnit. Uživatel nahraje obrázek, wordpress z toho obrázku udělá x dalších obrázků - například:

uživatel nahraje
centruminvestic.cz/wp-content/uploads/2018/02/electrum-ltc.jpg

a wordpress udělá:














Navíc kdyby se optimalizovalo do jiné složky, nezobrazoval by se na webu optimalizovaný obrázek. Rovněž je potřeba na serveru šetřit místem.

ja bych se s tim vubec tak slozite nesral.
udelej si vypis (obrazkovych) souboru s vystupem do textoveho souboru: ls *.jpg > soubory,txt

soubor.txt rucne rozsekej na x kusu, podle toho kolik mas jader na tolik souboru: soubor1.txt, soubor2.txt.....souborX.txt

udelej si shel skript, ktery projizdi textovy soubor a z nazvu souboru (obrazku) v souborN.txt projedes fajly a zpracujes obrazky.

spustis skript x-krat:

./zpracovani soubor1.txt &> /dev/null &
./zpracovani soubor2.txt &> /dev/null &
./zpracovani souborX.txt &> /dev/null &

a nemusim vymyslet paralelni kraviny.
na prioritizaci kdyz zpracovavat male nebo velke obrazky se taky vyprdni. az ty skripty dojedou, tak dojedou.



Je to na webserveru, kde to script spouštím cronem. To ruční rozsekání je pro mne problém. Dejme tomu, že tam mám 4 jádra a chtěl bych tedy vždy spouštět 3x.

23
Vývoj / Paralelní zpracování souboru
« kdy: 21. 02. 2018, 12:32:59 »
Ahoj, vytvořil jsem si soubor pro optimalizaci obrázků na web serveru. Konfigurační příklady, které jsem na webu našel, byly velmi neefektivní, protože jedou jen v jednom vlákně a zkouší i soubory, které již byly optimalizovány.

Napadlo mne, že by bylo efektivnější obrázky nejprve seřadit dle velikosti a zařadit do fronty. To mi jakžtakž funguje, ale jen na jednom stroji s debianem 9, na ubuntu 17.10 mám chybové hlášky o tom, že to někde nemá ve složce přístup (zkoušel jsem do /tmp přesunout pár obrázků a zkoušel to tam), obrázky se ale v /tmp neoptimalizovali, přitom jsem použil stejný postup jako na web serveru mujscript.sh /tmp/.

Koukal jsem na nějaké příklady paralelního zpracování, ale moc se v tom neorientuji. Koukal jsem i na program Parallel, ale ne že bych z toho byl zrovna moudrý.

Zde je můj současný skript:

Kód: [Vybrat]
#!/bin/bash
target="$1"

jpgfronta="$(mktemp)"
pngfronta="$(mktemp)"

find "${target}/" -type f -iname *.jp*g -exec du -a {} + | sort -n -r | cut -f 2 >"$jpgfronta"
find "${target}/" -type f -iname *.png -exec du -a {} + | sort -n -r | cut -f 2 >"$pngfronta"

while read line
do
printf "%s\n" "$line"
jpeg-recompress -q medium -l 128 -a -c -m smallfry "$(printf "%s\n" "$line")" "$(printf "%s\n" "$line")"
done < "$jpgfronta" &

while read line
do
printf "%s\n" "$line"
optipng -quiet -o7 "$(printf "%s\n" "$line")"
done < "$pngfronta" &

rm "$jpgfronta"
rm "$pngfronta"

exit

Myslím, že by bylo efektivnější, kdyby se zpracovávali najednou soubory dle počtu jader, jedno jádro by se nechalo nevyužité. Ve frontě jsou názvy souborů pro zpracování, v jednom sloupci. Možná by bylo jednodušší soubor rozdělit do sloupců dle počtu jader -1 a zpracovávat po řádku. Na to jsem nějaký skript na webu viděl, ale nevím jak na to. Nebo prostřednictvím toho paralelu nebo xargs.

Poradí někdo, jak docílit paralelního zpracování s větší prioritou zpracování pro velké soubory?

24
Server / Re:Aktualizace Nextcloud z verze 12 na 13 selhává
« kdy: 08. 02. 2018, 15:44:17 »
Viz https://github.com/Wonderfall/dockerfiles/issues/178, i když to není úplně relevantní, protože se to týká nextcloudu v dockeru, tedy jiné konfigurace.

25
Server / Re:Aktualizace Nextcloud z verze 12 na 13 selhává
« kdy: 08. 02. 2018, 15:41:36 »
Ty vaše nalezené chyby neřeší ale nextcloud, ale mariadb jako takové. Ale jedná se zřejmě o chybu v nextcloud, který nedokáže sám vyprázdnit cache z databáze.

26
Server / Re:Aktualizace Nextcloud z verze 12 na 13 selhává
« kdy: 08. 02. 2018, 14:00:22 »
Hmm, a který že odkaz to řeší? A co přesně bylo do toho google zadáváno? Také jsem k tomu samozřejmě něco našel, popsané stránky v angličtině, kde nebylo označeno správné řešení. A neřešil se tam počet zamknutých souborů ani cache, co mi skutečně pomohlo a co odpovídá té chybové hlášce.

27
Server / Re:Aktualizace Nextcloud z verze 12 na 13 selhává
« kdy: 08. 02. 2018, 13:23:31 »
Nevím, kde je to na google vyřešeno, samozřejmě jsem vyhledával. Vyřešil jsem v databázi tím, že jsem vyprázdnil seznam zamknutých souborů a cache a pak znovu spustil upgrade.

28
Server / Re:Aktualizace Nextcloud z verze 12 na 13 selhává
« kdy: 08. 02. 2018, 11:21:45 »
Co třeba místo konstatování zjevného pomoci :-)?

29
Server / Aktualizace Nextcloud z verze 12 na 13 selhává
« kdy: 08. 02. 2018, 01:29:48 »
Zde mi aktualizátor selže (ať už webový, nebo přes occ upgrade)
Kód: [Vybrat]
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Set log level to debug
Turned on maintenance mode
Updating database schema
Updated database
Checking for update of app activity in appstore
Checked for update of app "activity" in appstore
Checking for update of app admin_audit in appstore
Checked for update of app "admin_audit" in appstore
Checking for update of app calendar in appstore
Checked for update of app "calendar" in appstore
Checking for update of app comments in appstore
Checked for update of app "comments" in appstore
Checking for update of app contacts in appstore
Checked for update of app "contacts" in appstore
Checking for update of app dav in appstore
Checked for update of app "dav" in appstore
Checking for update of app encryption in appstore
Checked for update of app "encryption" in appstore
Checking for update of app federatedfilesharing in appstore
Checked for update of app "federatedfilesharing" in appstore
Checking for update of app federation in appstore
Checked for update of app "federation" in appstore
Checking for update of app files in appstore
Checked for update of app "files" in appstore
Checking for update of app files_external in appstore
Checked for update of app "files_external" in appstore
Checking for update of app files_pdfviewer in appstore
Checked for update of app "files_pdfviewer" in appstore
Checking for update of app files_sharing in appstore
Checked for update of app "files_sharing" in appstore
Checking for update of app files_texteditor in appstore
Checked for update of app "files_texteditor" in appstore
Checking for update of app files_trashbin in appstore
Checked for update of app "files_trashbin" in appstore
Checking for update of app files_versions in appstore
Checked for update of app "files_versions" in appstore
Checking for update of app files_videoplayer in appstore
Checked for update of app "files_videoplayer" in appstore
Checking for update of app firstrunwizard in appstore
Checked for update of app "firstrunwizard" in appstore
Checking for update of app gallery in appstore
Checked for update of app "gallery" in appstore
Checking for update of app logreader in appstore
Checked for update of app "logreader" in appstore
Checking for update of app lookup_server_connector in appstore
Checked for update of app "lookup_server_connector" in appstore
Checking for update of app nextcloud_announcements in appstore
Checked for update of app "nextcloud_announcements" in appstore
Checking for update of app notes in appstore
Checked for update of app "notes" in appstore
Checking for update of app notifications in appstore
Checked for update of app "notifications" in appstore
Checking for update of app oauth2 in appstore
Checked for update of app "oauth2" in appstore
Checking for update of app ownbackup in appstore
Checked for update of app "ownbackup" in appstore
Checking for update of app provisioning_api in appstore
Checked for update of app "provisioning_api" in appstore
Checking for update of app serverinfo in appstore
Checked for update of app "serverinfo" in appstore
Checking for update of app sharebymail in appstore
Checked for update of app "sharebymail" in appstore
Checking for update of app survey_client in appstore
Checked for update of app "survey_client" in appstore
Checking for update of app theming in appstore
Checked for update of app "theming" in appstore
Checking for update of app twofactor_backupcodes in appstore
Checked for update of app "twofactor_backupcodes" in appstore
Checking for update of app updatenotification in appstore
Checked for update of app "updatenotification" in appstore
Checking for update of app user_saml in appstore
Checked for update of app "user_saml" in appstore
Checking for update of app workflowengine in appstore
Checked for update of app "workflowengine" in appstore
Doctrine\DBAL\Exception\DriverException: An exception occurred while executing '
                        UPDATE `oc_filecache`
                        SET `mimetype` = ?
                        WHERE `mimetype` <> ? AND `mimetype` <> ? AND `name` COLLATE UTF8_general_ci LIKE ?
                ' with params ["133", 2, "133", "%.gpx"]:

SQLSTATE[HY000]: General error: 1206 The total number of locks exceeds the lock table size
Update failed
Maintenance mode is kept active
Reset log level


30
Desktop / Re:Web posílá divné soubory
« kdy: 05. 02. 2018, 18:16:48 »
a ptáš se z pozice serveru nebo příjemce?

Serveru i přijemce. Musel jsem vypnout HTTP2, dělá to proxy, za proxy jsem nemohl sledovat.

Stran: 1 [2] 3 4 ... 49