🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
14 messages
14 total messages Started by zigi Thu, 08 Dec 2011 12:52
thread 100%
#28362
Author: zigi
Date: Thu, 08 Dec 2011 12:52
5 lines
1379 bytes
Witam,
Panowie cz jest możliwość ograniczenia wątku aby nie zajmował 100%
procesora ?

Pzdr.
Re: thread 100%
#28363
Author: zigi
Date: Mon, 12 Dec 2011 11:39
13 lines
1796 bytes
Może rozświetle bardziej temat.
Mam funkcję listującą katalogi i pliki (plików jest 2 000 000 szt )
wywoływaną w nowym wątku. Ładnie wszystko chodzi lecz zapycha cały
procesor.

Może ktoś ma pomysł jak to można rowiązać.

On 8 Gru, 13:52, zigi <cezar4...@gmail.com> wrote:
> Witam,
> Panowie cz jest możliwość ograniczenia wątku aby nie zajmował 100%
> procesora ?
>
> Pzdr.
Re: thread 100%
#28364
Author: Tomek Kańka
Date: Mon, 12 Dec 2011 11:50
15 lines
1387 bytes
zigi <cezar4846@gmail.com> napisał(a)
> Może rozświetle bardziej temat.
> Mam funkcję listującą katalogi i pliki (plików jest 2 000 000 szt )
> wywoływaną w nowym wątku. Ładnie wszystko chodzi lecz zapycha cały
> procesor.
>
> Może ktoś ma pomysł jak to można rowiązać.
>

Trochę (chyba) obok tematu. Systemy plików nie lubią duzej ilości plików
w katalogu. Kiedyś z tego powodu musiałem zmienić ext2 na ReiserFS. Może
to nie jest problem z Twoim programem, tylko z systemem.

-- 
Tomek
Re: thread 100%
#28365
Author: zigi
Date: Mon, 12 Dec 2011 12:25
28 lines
2498 bytes
On 12 Gru, 12:50, Tomek Kańka <t...@tomkan.eu.org> wrote:
> zigi <cezar4...@gmail.com> napisał(a)
>
Hm,
system jest windows 2008 R2 pliki na macierzy wszstko działa oki.
Po prostu napisaełem swój program który robi wykres zawatości
katalogów. Przy listowaniu niestety jedzie na maxa po procesorze
czasem aczkolwiek nie zawsze.
Tutaj to jest jeszcze  zabawa ale chciałbym na przyszłośc pomyśleć jak
rozwiązać  problem wątków i zajętości procesora, tak pomyślałem że
może ktoś miał styczność z takim tematem.




> > Może rozświetle bardziej temat.
> > Mam funkcję listującą katalogi i pliki (plików jest 2 000 000 szt )
> > wywoływaną w nowym wątku. Ładnie wszystko chodzi lecz zapycha cały
> > procesor.
>
> > Może ktoś ma pomysł jak to można rowiązać.
>
> Trochę (chyba) obok tematu. Systemy plików nie lubią duzej ilości plików
> w katalogu. Kiedyś z tego powodu musiałem zmienić ext2 na ReiserFS. Może
> to nie jest problem z Twoim programem, tylko z systemem.
>
> --
> Tomek
Re: thread 100%
#28372
Author: Wojciech Muła
Date: Mon, 12 Dec 2011 12:52
13 lines
1790 bytes
W dniu czwartek, 8 grudnia 2011, 13:52:58 UTC+1 użytkownik zigi napisał:
> Witam,
> Panowie cz jest możliwość ograniczenia wątku aby nie zajmował 100%
> procesora ?

Przenośnej metody nie ma i raczej problem nie jest w wątkach,
tylko częstotliwości odwołań do funkcji systemowych.

Spróbuj poeksperymentować z http://docs.python.org/library/sys.html#sys.setcheckinterval - im większa wartość, tym
interpreter rzadziej przełącza wątki. Ale nie liczyłbym
na wiele.

w.
Re: thread 100%
#28373
Author: zigi
Date: Mon, 12 Dec 2011 13:50
20 lines
2285 bytes
Oprócz tego spróbuje nastawić:  stack_size([size]).
Może coś z tego wyjdzie :-)



On 12 Gru, 13:52, Wojciech Muła <wojtek.m...@gmail.com> wrote:
> W dniu czwartek, 8 grudnia 2011, 13:52:58 UTC+1 użytkownik zigi napisał:
>
> > Witam,
> > Panowie cz jest możliwość ograniczenia wątku aby nie zajmował 100%
> > procesora ?
>
> Przenośnej metody nie ma i raczej problem nie jest w wątkach,
> tylko częstotliwości odwołań do funkcji systemowych.
>
> Spróbuj poeksperymentować zhttp://docs.python.org/library/sys.html#sys.setcheckinterval- im większa wartość, tym
> interpreter rzadziej przełącza wątki. Ale nie liczyłbym
> na wiele.
>
> w.
Re: thread 100%
#28366
Author: Piotr M Kuć
Date: Mon, 12 Dec 2011 14:30
30 lines
2230 bytes
W artykule <3b5ef72b-8424-4287-8540-a82c258d891f@m10g2000vbc.googlegroups.com> zigi napisal(a):

> On 12 Gru, 12:50, Tomek Kańka <t...@tomkan.eu.org> wrote:
>> zigi <cezar4...@gmail.com> napisał(a)
>>
> Hm,
> system jest windows 2008 R2 pliki na macierzy wszstko działa oki.
> Po prostu napisaełem swój program który robi wykres zawatości
> katalogów. Przy listowaniu niestety jedzie na maxa po procesorze
> czasem aczkolwiek nie zawsze.
> Tutaj to jest jeszcze  zabawa ale chciałbym na przyszłośc pomyśleć jak
> rozwiązać  problem wątków i zajętości procesora, tak pomyślałem że
> może ktoś miał styczność z takim tematem.

Takiemu wątkowi obniż priorytet by nie zarzynał wszystkiego.
Też będzie 100% zużycia procesora, ale najpierw zostaną obsłużone
inne procesy/wątki a ten nisko-priorytetowy wątek roboczy
wykorzysta pozostałą część czasu procesora. Tylko pamiętaj
że jeśli będziesz chciał robić naprawdę wielowątkową aplikację
w CPythonie, to pewnie nadziejesz się na GIL-a[1] i będziesz musiał
rozmontować aplikację na wieloprocesową.


[1] http://wiki.python.org/moin/GlobalInterpreterLock



-- 
Pozdrawiam,                           Piotr.Kuc-(szympans)-kuciak.net
Piotr Kuć
Re: thread 100%
#28367
Author: zigi
Date: Mon, 12 Dec 2011 15:08
34 lines
2958 bytes
Super dzięki za materiał.

Pzdr.



On 12 Gru, 15:30, Piotr M Kuć <kuc...@nospam.invalid> wrote:
> W artykule <3b5ef72b-8424-4287-8540-a82c258d8...@m10g2000vbc.googlegroups.com> zigi napisal(a):
>
> > On 12 Gru, 12:50, Tomek Kańka <t...@tomkan.eu.org> wrote:
> >> zigi <cezar4...@gmail.com> napisał(a)
>
> > Hm,
> > system jest windows 2008 R2 pliki na macierzy wszstko działa oki.
> > Po prostu napisaełem swój program który robi wykres zawatości
> > katalogów. Przy listowaniu niestety jedzie na maxa po procesorze
> > czasem aczkolwiek nie zawsze.
> > Tutaj to jest jeszcze  zabawa ale chciałbym na przyszłośc pomyśleć jak
> > rozwiązać  problem wątków i zajętości procesora, tak pomyślałem że
> > może ktoś miał styczność z takim tematem.
>
> Takiemu wątkowi obniż priorytet by nie zarzynał wszystkiego.
> Też będzie 100% zużycia procesora, ale najpierw zostaną obsłużone
> inne procesy/wątki a ten nisko-priorytetowy wątek roboczy
> wykorzysta pozostałą część czasu procesora. Tylko pamiętaj
> że jeśli będziesz chciał robić naprawdę wielowątkową aplikację
> w CPythonie, to pewnie nadziejesz się na GIL-a[1] i będziesz musiał
> rozmontować aplikację na wieloprocesową.
>
> [1]http://wiki.python.org/moin/GlobalInterpreterLock
>
> --
> Pozdrawiam,                           Piotr.Kuc-(szympans)-kuciak.net
> Piotr Kuć
Re: thread 100%
#28368
Author: Jordan Szubert
Date: Mon, 12 Dec 2011 20:59
17 lines
1586 bytes
Dnia 12-12-2011 o 13:25:29 zigi <cezar4846@gmail.com> napisał(a):

> Hm,
> system jest windows 2008 R2 pliki na macierzy wszstko działa oki.
> Po prostu napisaełem swój program który robi wykres zawatości
> katalogów. Przy listowaniu niestety jedzie na maxa po procesorze
> czasem aczkolwiek nie zawsze.
> Tutaj to jest jeszcze  zabawa ale chciałbym na przyszłośc pomyśleć jak
> rozwiązać  problem wątków i zajętości procesora, tak pomyślałem że
> może ktoś miał styczność z takim tematem.

czemu obniżenie priorytetu wątku nie wystarcza (nie wiem jak to zrobić,  
ale powinno się dać)?

[8<]
-- 
Jordan Szubert
Re: thread 100%
#28374
Author: mkp
Date: Mon, 12 Dec 2011 21:00
11 lines
1251 bytes
W dniu 08.12.2011r. 13:52, zigi pisze:
> Witam,
> Panowie cz jest możliwość ograniczenia wątku aby nie zajmował 100%
> procesora ?
>
> Pzdr.

Jesli watek robi cos w petli to mozna dolozyc jakiegos drobnego sleepa. 
O ile takie rozwiazanie jest akceptowalne.

Marcin
Re: thread 100%
#28375
Author: mkp
Date: Mon, 12 Dec 2011 21:01
11 lines
1229 bytes
W dniu 08.12.2011r. 13:52, zigi pisze:
> Witam,
> Panowie cz jest możliwość ograniczenia wątku aby nie zajmował 100%
> procesora ?
>
> Pzdr.

Jesli watek robi cos w petli to mozna dolozyc jakiegos drobnego sleepa. 
O ile takie rozwiazanie jest akceptowalne.

Marcin
Re: thread 100%
#28369
Author: Rob Wolfe
Date: Mon, 12 Dec 2011 21:35
36 lines
2794 bytes
zigi <cezar4846@gmail.com> writes:

> On 12 Gru, 12:50, Tomek Kańka <t...@tomkan.eu.org> wrote:
>> zigi <cezar4...@gmail.com> napisał(a)
>>
> Hm,
> system jest windows 2008 R2 pliki na macierzy wszstko działa oki.
> Po prostu napisaełem swój program który robi wykres zawatości
> katalogów. Przy listowaniu niestety jedzie na maxa po procesorze
> czasem aczkolwiek nie zawsze.
> Tutaj to jest jeszcze  zabawa ale chciałbym na przyszłośc pomyśleć jak
> rozwiązać  problem wątków i zajętości procesora, tak pomyślałem że
> może ktoś miał styczność z takim tematem.

Skąd pewność, że tutaj problemem są akurat wątki?
Czy program odpalony jednowątkowo nie zarzyna procka?
Jeśli faktycznie chodzi o wątki, to może odpalasz ich zbyt dużo.
Optymalna liczba wątków zależy od konkretnego przypadku,
ale tworzenie ich na pałę (np. oddzielny wątek dla każdego katalogu)
w prostej linii prowadzi do sytuacji, w której czas procesora
jest pożerany na przełączanie kontekstu między nimi.
Zwykle najlepszym wyjściem jest utworzenie puli o stałej liczbie
wątków i wrzucanie im zadań do jakiejś kolejki.
Wspomniałeś coś o rysowaniu katalogów. Nie wiem na ile zasobożerna
jest ta operacja (odpal profiler i zmierz, yappi [1]_ radzi sobie 
z wątkami), ale jeśli wyjdzie, że jest wąskim gardłem, to niestety
GIL może tu być problemem. Wtedy należy użyć ``multiprocessing``,
a tam masz już nawet gotowca do pulowania procesów [2]_.
Generalnie jeśli chcesz się pobawić w optymalizację,
to polecam lekturę przygód effbota na tym polu [3]_.

.. [1] http://code.google.com/p/yappi/
.. [2] http://docs.python.org/library/multiprocessing.html#using-a-pool-of-workers
.. [3] http://effbot.org/zone/wide-finder.htm

RW
Re: thread 100%
#28370
Author: zigi
Date: Tue, 13 Dec 2011 09:06
45 lines
3788 bytes
Nie nie odpalam wątków "na pałę".  1 funkcja listująca chodzi w
oddzielnym wątku, jednak sortowanie katalogów 2 mln daje sie we znaki
lapikowi tym bardziej iż jest to na zmapownym dysku.

Mimo to uważam iż nawet gdy problemem jest sieć wątek nie może
zajmować do 100% procesora.



On 12 Gru, 22:35, Rob Wolfe <r...@smsnet.pl> wrote:
> zigi <cezar4...@gmail.com> writes:
> > On 12 Gru, 12:50, Tomek Kańka <t...@tomkan.eu.org> wrote:
> >> zigi <cezar4...@gmail.com> napisał(a)
>
> > Hm,
> > system jest windows 2008 R2 pliki na macierzy wszstko działa oki.
> > Po prostu napisaełem swój program który robi wykres zawatości
> > katalogów. Przy listowaniu niestety jedzie na maxa po procesorze
> > czasem aczkolwiek nie zawsze.
> > Tutaj to jest jeszcze  zabawa ale chciałbym na przyszłośc pomyśleć jak
> > rozwiązać  problem wątków i zajętości procesora, tak pomyślałem że
> > może ktoś miał styczność z takim tematem.
>
> Skąd pewność, że tutaj problemem są akurat wątki?
> Czy program odpalony jednowątkowo nie zarzyna procka?
> Jeśli faktycznie chodzi o wątki, to może odpalasz ich zbyt dużo.
> Optymalna liczba wątków zależy od konkretnego przypadku,
> ale tworzenie ich na pałę (np. oddzielny wątek dla każdego katalogu)
> w prostej linii prowadzi do sytuacji, w której czas procesora
> jest pożerany na przełączanie kontekstu między nimi.
> Zwykle najlepszym wyjściem jest utworzenie puli o stałej liczbie
> wątków i wrzucanie im zadań do jakiejś kolejki.
> Wspomniałeś coś o rysowaniu katalogów. Nie wiem na ile zasobożerna
> jest ta operacja (odpal profiler i zmierz, yappi [1]_ radzi sobie
> z wątkami), ale jeśli wyjdzie, że jest wąskim gardłem, to niestety
> GIL może tu być problemem. Wtedy należy użyć ``multiprocessing``,
> a tam masz już nawet gotowca do pulowania procesów [2]_.
> Generalnie jeśli chcesz się pobawić w optymalizację,
> to polecam lekturę przygód effbota na tym polu [3]_.
>
> .. [1]http://code.google.com/p/yappi/
> .. [2]http://docs.python.org/library/multiprocessing.html#using-a-pool-of-w...
> .. [3]http://effbot.org/zone/wide-finder.htm
>
> RW
Re: thread 100%
#28371
Author: Aër
Date: Thu, 26 Jan 2012 09:45
16 lines
2430 bytes
On 13 Gru 2011, 10:06, zigi <cezar4...@gmail.com> wrote:
> Nie nie odpalam wątków "na pałę".  1 funkcja listująca chodzi w
> oddzielnym wątku, jednak sortowanie katalogów 2 mln daje sie we znaki
> lapikowi tym bardziej iż jest to na zmapownym dysku.
>
> Mimo to uważam iż nawet gdy problemem jest sieć wątek nie może
> zajmować do 100% procesora.
>
> On 12 Gru, 22:35, Rob Wolfe <r...@smsnet.pl> wrote:
>

Wątek jak najbardziej MOŻE zajmować 100% procesora, a nawet powinien,
inaczej chodziłby ze zmniejszoną prędkością. Proponuję, tak jak kolega
wyżej, wrzucić (w miarę możliwości) sleep-a.

Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads