2012-05-07 14 views
15

Czy istnieje sposób ograniczenia liczby rdzeni używanych przez java?Ograniczanie wykorzystania zasobów Java

Czy w tym samym duchu można ograniczyć ilość tego rdzenia?

+0

Nie od strony java, system operacyjny przydziela wątki do rdzeni. Niektóre bardzo drogie oprogramowanie VMWare jest jedynym rozwiązaniem, które znam osobiście :) – Affe

+1

http://stackoverflow.com/questions/8882885/is-it-possible-to-force-an-existing-java-application-to -use-no-more-than-x-rdzenie – rolve

+1

możliwy duplikat [Ograniczanie użycia pamięci procesora Java i użycia cpu] (http://stackoverflow.com/questions/4952528/limiting-java-applications-memory-and-cpu- użycie) – Abizern

Odpowiedz

5

Możesz użyć zestawu zadań w systemie Linux. Możesz także obniżyć priorytet procesu, ale jeśli procesor (S) nie jest zajęty, proces dostanie tyle CPU, ile może użyć.

Mam bibliotekę przeznaczoną do dedukowania wątku do rdzenia, zwanego koligacją wątku Java, ale może mieć inny cel niż to, co masz na myśli. Czy możesz wyjaśnić, dlaczego chcesz to zrobić?

+0

Tworzę rozproszoną siatkę przetwarzania dla projektu szkolnego, a jednym z wymogów było ograniczenie zużycia zasobów. – rynojvr

+0

Najprostszą rzeczą do zrobienia jest rozpoczęcie procesu o bardzo niskim priorytecie. na przykład 'nice -n 20' Oznacza to, że będzie używał tylko" darmowego "procesora. Nie ograniczy to pamięci (możesz użyć maksymalnego rozmiaru sterty) lub dysku lub sieci IO (musisz to zakodować, jeśli potrzebujesz), ale zrobi to, co chcesz. –

3

Nie sądzę, że istnieją wbudowane opcje JVM do wykonywania tego rodzaju poprawek, jednak można ograniczyć użycie procesora przez ustawienie priorytetu i/lub powinowactwa procesora JVM. Jeśli jesteś w Linuksie, spójrz na CPULimit, które jest wspaniałym narzędziem do wykonywania tego rodzaju ograniczeń zasobów.

+0

Głównym minusem tego wszechobecnego, przenośnego języka; Nie mogę uwierzyć, że to nie poruszyło przynajmniej korporacja "java-panowie". –

Powiązane problemy