Chcę utworzyć prawie 100% obciążenia na komputerze z systemem Linux. To system czterordzeniowy i chcę, aby wszystkie rdzenie pracowały z pełną prędkością. Najlepiej byłoby, gdyby obciążenie procesora trwało przez określony czas, a następnie się zatrzymało. Mam nadzieję, że jest jakaś sztuczka w bashu. Myślę o jakiejś nieskończonej pętli.
281
Odpowiedzi:
Możesz też zrobić
Aby uruchomić więcej z nich i obciążyć więcej rdzeni, spróbuj rozwidlić:
Powtórz polecenie w nawiasach klamrowych tyle razy, ile jest wątków, które chcesz wyprodukować (tutaj 4 wątki). Proste wciśnięcie Enter go zatrzyma (upewnij się, że żaden inny dd nie działa na tym użytkowniku lub go zabijesz).
źródło
/dev/zero
i pisanie do/dev/null
nie jest zbyt dobrym generatorem obciążenia - musisz uruchomić wiele z nich, aby wygenerować znaczne obciążenie. Lepiej zrobić coś takiegodd if=/dev/urandom | bzip2 -9 >> /dev/null
./dev/urandom
wymaga znacznie większego wysiłku, aby wygenerować dane wyjściowe ibzip2
poświęci dużo wysiłku, próbując je skompresować, więc ogólne użycie procesora jest znacznie wyższe niż „wypełnienie bloku zerami, a następnie wyrzucenie go”.jobs -p | xargs kill
do zabijania tylko utworzonych procesów.Używam stresu do tego rodzaju rzeczy, możesz powiedzieć, ile rdzeni ma się maksymalnie wydłużyć .. pozwala to również na stresowanie pamięci i dysku.
Przykład obciążenia 2 rdzeni przez 60 sekund
stress --cpu 2 --timeout 60
źródło
sudo yum install stress
EPEL
repo dla CentOSwget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
brew
install stress
na OS X. Również z jakiegoś powodu musiałem określić 8 rdzeni na czterordzeniowym MBPrsudo apt-get install stress
w systemach opartych na Debianie, dla kompletności. Wykorzystano to do przetestowania modu chłodzenia w zestawie Intel i7 NUC .Myślę, że ten jest prostszy. Otwórz Terminal, wpisz następujące polecenie i naciśnij klawisz Enter.
Aby w pełni wykorzystać nowoczesne procesory, jedna linia nie wystarczy, konieczne może być powtórzenie polecenia, aby wyczerpać całą moc procesora.
Aby zakończyć to wszystko, po prostu
Pomysł został pierwotnie znaleziony tutaj , chociaż był przeznaczony dla użytkowników komputerów Mac, ale powinno to również działać w przypadku * nix.
źródło
yes
polecenie (zakładając, że system byłby bezczynny).Chociaż jestem spóźniony na imprezę, ten post jest jednym z najlepszych wyników w wyszukiwarce Google „generuj obciążenie w systemie Linux”.
Wynik oznaczony jako rozwiązanie może być wykorzystany do wygenerowania obciążenia systemu, wolę użyć
sha1sum /dev/zero
do nałożenia obciążenia na rdzeń procesora.Chodzi o to, aby obliczyć sumę skrótu z nieskończonego strumienia danych (np. / Dev / zero, / dev / urandom, ...) ten proces będzie próbował zmaksymalizować rdzeń procesora, dopóki proces nie zostanie przerwany. Aby wygenerować obciążenie dla większej liczby rdzeni, można połączyć wiele poleceń razem.
na przykład. generować obciążenie 2 rdzenia:
sha1sum /dev/zero | sha1sum /dev/zero
źródło
Jeden rdzeń (nie wywołuje zewnętrznego procesu):
Dwa rdzenie:
To ostatnie sprawia, że oba moje osiągają ~ 50% ...
Ten sprawi, że oba osiągną 100%:
źródło
renice 19 -p $$
. Nadal będzie maksymalizować procesory, ale nie wpłynie na inne procesy.Aby załadować 3 rdzenie przez 5 sekund:
Powoduje to duże obciążenie jądra (sys) z wielu wywołań systemowych write ().
Jeśli wolisz ładować procesor głównie z obszaru użytkownika:
Jeśli chcesz, aby ładowanie trwało do momentu naciśnięcia klawiszy Ctrl-C:
źródło
Oto program, który możesz pobrać tutaj
Zainstaluj łatwo w systemie Linux
i uruchom go w prostym wierszu poleceń
aby zaakcentować wszystkie procesory (bez względu na to, jakie są) za pomocą 40 wątków, z których każdy
sqrt
wykonuje skomplikowane obliczenia na liczbach generowanych z dużą częstotliwością.Możesz nawet zdefiniować limit czasu programu
w przeciwieństwie do proponowanego rozwiązania z
dd
poleceniem, które dotyczy zasadniczoIO
i dlatego tak naprawdę nie przeciąża systemu, ponieważ pracuje z danymi.Program warunków skrajnych naprawdę przeciąża system, ponieważ zajmuje się obliczeniami.
źródło
stress
polecenie. Jak mówi ta odpowiedź, możesz po prostu zainstalować go za pomocą yum / apt / etc.Ta bomba widełkowa spowoduje spustoszenie w procesorze i prawdopodobnie spowoduje awarię komputera.
źródło
Nieskończona pętla to również pomysł. Dziwacznie wyglądający jest:
(
:
jest taki sam jaktrue
, nic nie robi i wychodzi z zerem)Możesz to nazwać w podpowłoce i uruchomić w tle. Robienie tego
$num_cores
czasu powinno wystarczyć. Po spanie żądany czas można je zabić wszystkich, można dostać się z PIDjobs -p
(podpowiedź:xargs
)źródło
Podzielę tę rzecz na 2 skrypty:
infinite_loop.bash:
cpu_spike.bash:
źródło
źródło
źródło
Użyłem
bc
( kalkulator binarny ), prosząc ich o PI z dużą liczbą miejsc po przecinku.z NUMCPU (pod Linuksem):
Ta metoda jest silna, ale wydaje się przyjazna dla systemu , ponieważ nigdy nie rozbiłam systemu przy użyciu tego.
źródło
źródło
:-)
Przeszukałem Internet, aby znaleźć coś podobnego i znalazłem ten bardzo przydatny skrypt młota procesora.
źródło
NUM_PROC=${1:-10}
.Korzystając ze wspomnianych tutaj przykładów, ale także pomocy IRC, opracowałem własny skrypt do testowania obciążenia procesora. Używa podpowłoki na wątek i techniki nieskończonej pętli. Możesz także interaktywnie określić liczbę wątków i czas.
źródło
Wykorzystując tutaj pomysły, utworzony kod, który wychodzi automatycznie po określonym czasie, nie musi zabijać procesów -
źródło
To dla mnie sztuczka:
i używa tylko bash.
źródło
Aby poprawić odpowiedź dimby i zapewnić coś bardziej podłączalnego (ponieważ potrzebowałem czegoś podobnego). Napisałem następujące przy użyciu koncepcji ładowania dd: D
Sprawdza bieżące rdzenie i tworzy tyle wątków dd. Rozpocznij i zakończ ładowanie rdzenia za pomocą Enter
źródło
Połączyłem niektóre odpowiedzi i dodałem sposób na skalowanie stresu do wszystkich dostępnych cpus:
źródło
Dimba's
dd if=/dev/zero of=/dev/null
jest zdecydowanie poprawne, ale warto również wspomnieć o sprawdzeniu maksymalizacji procesora do 100% użycia. Możesz to zrobić za pomocąTo prosi o wyjście ps o 1-minutową średnią użycia procesora przez każdy proces, a następnie sumuje je za pomocą awk. Chociaż jest to średnia 1 minuta, ps jest wystarczająco inteligentny, aby wiedzieć, czy proces trwał tylko kilka sekund i odpowiednio dostosowuje okno czasowe. Dlatego możesz użyć tego polecenia, aby natychmiast zobaczyć wynik.
źródło
w celu zwiększenia obciążenia lub zużycia procesora 100%
wtedy możesz zobaczyć użycie procesora, wpisując polecenie
aby zwolnić ładunek
źródło
Po prostu wklej tego złego chłopca do SSH lub konsoli dowolnego serwera z systemem Linux.
Możesz zabić procesy ręcznie, ale ja po prostu zamykam serwer, kiedy skończę, szybciej.Edycja: Zaktualizowałem ten skrypt, aby teraz miał funkcję timera, dzięki czemu nie ma potrzeby zabijania procesów.
źródło