Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

memcaslap - Online w chmurze

Uruchom memcaslap w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie memcaslap, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


memaslap — dokumentacja libmemcached

STRESZCZENIE


memaslap [opcje]

--help

MEMCACHED_SERVERS

OPIS


pamiętnik to narzędzie do generowania obciążenia i testów porównawczych dla serwerów memcached. Generuje
konfigurowalne obciążenia, takie jak wątki, współbieżności, połączenia, czas pracy, nadpisywanie,
wskaźnik chybień, rozmiar klucza, rozmiar wartości, proporcja pobierania/ustawiania, oczekiwana przepustowość i tak dalej.
Ponadto testuje również weryfikację danych, weryfikację czasu wygaśnięcia, UDP, binarny
protokół, test Facebooka, test replikacji, wielokrotne pobieranie i ponowne połączenie itp.

Memaslap zarządza połączeniami sieciowymi, takimi jak memcached z libevent. Każdy wątek memaslapu
jest powiązany z rdzeniem procesora, wszystkie wątki nie komunikują się ze sobą, a tak jest
kilka połączeń gniazdowych w każdym wątku. Każde połączenie zachowuje rozkład rozmiaru klucza,
rozkład wielkości wartości i sam rozkład poleceń.

Możesz określić serwery poprzez pamiętnik --serwery opcję lub poprzez zmienną środowiskową
MEMCACHED_SERVERS.

ROZWIĄZANIA


Memslap został opracowany do następujących celów:

Zarządza połączeniami sieciowymi za pomocą libevent asynchronicznie.

Ustaw zarówno TCP, jak i UDP, aby używać nieblokującego wejścia/wyjścia.

Poprawia równoległość: wyższa wydajność w środowiskach wielowątkowych.

Poprawia efektywność czasową: większa prędkość przetwarzania.

Bardziej efektywnie generuje klucz i wartość; rozkład rozmiaru klucza i rozmiar wartości
dystrybucję można konfigurować.

Obsługuje polecenia get, multi-get i set; dystrybucja poleceń jest konfigurowalna.

Obsługuje kontrolowaną częstotliwość chybień i szybkość nadpisywania.

Obsługuje weryfikację danych i czasu wygaśnięcia.

Obsługuje okresowe zrzucanie informacji statystycznych.

Obsługuje tysiące połączeń TCP.

Obsługuje protokół binarny.

Obsługuje test Facebooka (ustawiony z TCP i multi-get z UDP) i test replikacji.

SZCZEGÓŁY


Efektywne realizacja of sieci.
W przypadku memaslap zarówno TCP, jak i UDP używają nieblokującego sieciowego wejścia/wyjścia. Wszystkie wydarzenia sieciowe są
zarządzany przez libevent jako memcached. Moduł sieciowy memaslap jest podobny do memcached.
Libevent może zapewnić, że memaslap będzie w stanie bardzo efektywnie obsługiwać sieć.

Efektywne realizacja of wielowątkowe i współbieżność
Memslap ma podobną implementację wielowątkową jak memcached. Memslap tworzy taki
lub więcej wątków samorządnych; każdy wątek jest powiązany z jednym rdzeniem procesora, jeśli system przeprowadza testy
ustawienie powinowactwa rdzenia procesora.

Dodatkowo każdy wątek posiada zdarzenie umożliwiające zarządzanie zdarzeniami w sieci; każdy wątek
ma jedną lub więcej samorządnych współbieżności; a każda współbieżność ma jedno lub więcej gniazd
znajomości. Wszystkie współbieżności nie komunikują się ze sobą, mimo że tak jest
w tym samym wątku.

Memslap może utworzyć tysiące połączeń gniazdowych, a każda współbieżność ma ich dziesiątki
połączenia gniazdowe. Każda współbieżność losowo lub sekwencyjnie wybiera jedno gniazdo
połączenie z puli połączeń gniazd, więc memaslap może zapewnić każdą współbieżność
obsługuje jedno połączenie z gniazdem w dowolnym momencie. Użytkownicy mogą określić liczbę
współbieżność i połączenia gniazdowe każdej współbieżności zgodnie z ich oczekiwaniami
obciążenie pracą.

Efektywne realizacja of generujący klucz i wartość
Aby poprawić efektywność czasową i przestrzeń, memaslap tworzy losowo
tabela znaków zawierająca 10 milionów znaków. Generowane są wszystkie przyrostki kluczy i wartości
z tej tabeli losowych znaków.

Memslap używa przesunięcia w tablicy znaków i długości łańcucha, aby zidentyfikować a
strunowy. Może zaoszczędzić dużo pamięci. Każdy klucz składa się z dwóch części, przedrostka i przyrostka. The
prefiks to uint64_t, 8 bajtów. Aby wcześniej zweryfikować zestaw danych, należy wykonać memaslap
upewnij się, że każdy klucz jest unikalny, więc używa prefiksu do identyfikacji klucza. Przedrostek nie może
zawierać niedozwolone znaki, takie jak „r”, „n”, „0” i „”. A memaslap ma algorytm
aby to zapewnić.

Memslap nie generuje na początku wszystkich obiektów (par klucz-wartość). Tylko
generuje wystarczającą liczbę obiektów, aby wypełnić okno zadania (domyślnie 10 tys. obiektów) każdego z nich
konkurencja. Każdy obiekt ma następujące podstawowe informacje, przedrostek klucza, przyrostek klucza
przesunięcie w tablicy znaków, długość klucza, przesunięcie wartości w tablicy znaków i wartość
długość.

W procesie pracy każda współbieżność sekwencyjnie lub losowo wybiera obiekt z
okno umożliwiające wykonanie operacji ustawiania lub uzyskanie operacji. Jednocześnie uruchamia się każda współbieżność
obiekty ze swojego okna i dodaje do niego nowy obiekt.

Prosty ale użyteczny zadanie szeregowanie
Memslap używa libevent do planowania wszystkich współbieżności wątków i każdej współbieżności
planuje zadania w oparciu o lokalne okno zadań. Memslap zakłada, że ​​jeśli każda współbieżność
utrzymuje tę samą dystrybucję kluczy, dystrybucję wartości i dystrybucję poleceń
na zewnątrz memaslap utrzymuje całą dystrybucję jako całość. Każde okno zadań zawiera wiele
obiektów, każdy obiekt przechowuje podstawowe informacje, takie jak klucz, wartość, czas wygaśnięcia i
Wkrótce. W dowolnym momencie wszystkie obiekty w oknie mają ten sam, stały klucz i wartość
dystrybucja. Jeżeli obiekt zostanie nadpisany, wartość obiektu zostanie zaktualizowana.
Memslap weryfikuje dane lub czas wygaśnięcia zgodnie z informacjami o obiekcie przechowywanymi w pliku
okno zadań.

Libevent wybiera współbieżność do obsługi na podstawie konkretnego zdarzenia sieciowego. A później
współbieżność wybiera polecenie (get lub set), które ma zostać wykonane na podstawie polecenia
dystrybucja. Jeśli trzeba wyrzucić stary obiekt i dodać nowy, aby go zachować
ten sam rozkład kluczy i wartości, nowy obiekt musi mieć tę samą długość klucza i
długość wartości.

Jeśli serwer memcached ma dwie warstwy pamięci podręcznej (pamięć i dysk SSD), uruchamianie memaslap z różnymi
rozmiary okien mogą powodować różne współczynniki pominięć pamięci podręcznej. Jeśli memaslap doda wystarczającą liczbę obiektów do pliku
Windows na początku, a pamięć podręczna memcached nie może przechowywać wszystkich obiektów
zainicjowany, wówczas memaslap pobierze niektóre obiekty z drugiej warstwy pamięci podręcznej. Wywołuje
pierwsza warstwa pamięci podręcznej pominięta. Dzięki temu użytkownik może określić rozmiar okna, aby uzyskać oczekiwany
współczynnik braków pierwszej warstwy pamięci podręcznej.

przydatny realizacja of wiele serwerów , UDP, TCP, multi-get i dwójkowy protokół
Ponieważ każdy wątek jest samorządny, memaslap może przypisać różne wątki do obsługi
różne serwery memcached. To tylko jeden ze sposobów, w jakie memaslap testuje wielokrotność
serwery. Jedynym ograniczeniem jest to, że liczba serwerów nie może być większa niż
Liczba wątków. Innym sposobem przetestowania wielu serwerów jest test replikacji. Każdy
współbieżność ma jedno połączenie gniazdowe z każdym serwerem memcached. Do wdrożenia,
memaslap może ustawić niektóre obiekty na jednym serwerze memcached i pobrać te obiekty z
inne serwery.

Domyślnie Memslap pobiera pojedynczo. Jeśli użytkownik określi opcję wielokrotnego pobierania, memaslap to zrobi
zbierz wystarczającą ilość poleceń get, spakuj i wyślij polecenia razem.

Memslap testuje zarówno protokół ASCII, jak i protokół binarny, ale działa na ASCII
domyślnie protokół. Memslap domyślnie działa na protokole TCP, ale testuje także UDP.
Ponieważ protokół UDP jest zawodny, mogą wystąpić porzucone pakiety lub pakiety poza kolejnością. Memslap
tworzy bufor pamięci do obsługi tych problemów. Memslap próbuje odczytać całą odpowiedź
dane jednego polecenia z serwera i zmienia kolejność danych odpowiedzi. Jeśli niektóre pakiety dostaną
utracone, mechanizm przekroczenia limitu czasu oczekiwania może zapewnić, że niedopieczone opakowania zostaną odrzucone i
zostanie wysłane następne polecenie.

ZASTOSOWANIE


Poniżej znajdują się próbki użycia:

memaslap -s 127.0.0.1:11211 -S 5s

memaslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b

memaslap -s 127.0.0.1:11211 -F konfiguracja -t 2m -w 40k -S 20s -o 0.2

memaslap -s 127.0.0.1:11211 -F konfiguracja -t 2m -T 4 -c 128 -d 20 -P 40k

memaslap -s 127.0.0.1:11211 -F konfiguracja -t 2m -d 50 -a -n 40

memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F konfiguracja -t 2m

memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F konfiguracja -t 2m -p 2

Użytkownik musi określić co najmniej jeden serwer, aby uruchomić memaslap. Reszta parametrów tak
wartości domyślne, jak pokazano poniżej:

Numer wątku = 1 Współbieżność = 16

Czas działania = 600 sekund Plik konfiguracyjny = NULL

Rozmiar klucza = 64 Rozmiar wartości = 1024

Get/set = 9:1 Rozmiar okna = 10 tys

Liczba wykonania = 0 Pojedynczy get = true

Multi-get = false Liczba gniazd każdej współbieżności = 1

Połącz ponownie = fałsz Weryfikacja danych = fałsz

Weryfikacja terminu wygaśnięcia = fałsz Protokół ASCII = prawda

Protokół binarny = fałsz Zrzucanie informacji statystycznych

okresowo = fałsz

Nadpisanie proporcji = 0% UDP = fałsz

TCP = true Ograniczenie przepustowości = false

Test Facebooka = fałsz Test replikacji = fałsz

Klawisz rozmiar, wartość rozmiar i komenda d
Wszystkie dystrybucje są odczytywane z pliku konfiguracyjnego określonego przez użytkownika
Opcja „—cfg_cmd”. Jeśli użytkownik nie określi pliku konfiguracyjnego, zostanie uruchomiony memaslap
z domyślną dystrybucją (rozmiar klucza = 64, rozmiar wartości = 1024, get/set = 9:1). Dla
Informacje na temat edycji pliku konfiguracyjnego znajdują się w „Pliku konfiguracyjnym”


Minimalny rozmiar klucza to 16 bajtów; maksymalny rozmiar klucza wynosi 250 bajtów. Precyzja
proporcja wynosi 0.001. Proporcja podziału zostanie zaokrąglona do 3 miejsc po przecinku.

Minimalny rozmiar wartości to 1 bajt; maksymalny rozmiar wartości to 1M bajtów. Precyzja
proporcja wynosi 0.001. Proporcja podziału zostanie zaokrąglona do 3 miejsc po przecinku.
Obecnie memaslap testuje tylko ustawianie i pobieranie poleceń. I testuje 100% seta i 100% geta.
Aby otrzymać 100%, wstępnie ustawi niektóre obiekty na serwerze.

Wielowątkowy i współbieżność
Wysoka wydajność memaslap wynika ze specjalnego harmonogramu nici i
konkurencja. Ważne jest, aby określić ich odpowiednią liczbę. Domyślna liczba
wątki to 1; domyślna liczba współbieżności wynosi 16. Użytkownik może używać „-wątków” i
„--concurrency”, aby określić te zmienne.

Jeśli system testuje ustawienie powinowactwa procesora i liczby wątków określonej przez użytkownika
jest większa niż 1, memaslap spróbuje powiązać każdy wątek z innym rdzeniem procesora. Więc jeśli
chcesz uzyskać najlepszą wydajność memaslapa, lepiej określić liczbę
wątek równy liczbie rdzeni procesora. Liczba wątków określona przez użytkownika może
być również mniejsza lub większa niż liczba rdzeni procesora. Ze względu na ograniczenie
implementacji, liczba współbieżności może być wielokrotnością liczby
wątki

1. Dla systemu z 8 rdzeniami procesora

Na przykład:

--threads=2 --concurrency=128

--threads=8 --concurrency=128

--threads=8 --concurrency=256

--threads=12 --concurrency=144

2. Dla systemu z 16 rdzeniami procesora

Na przykład:

--threads=8 --concurrency=128

--threads=16 --concurrency=256

--threads=16 --concurrency=512

--threads=24 --concurrency=288

Memaslap działa bardzo dobrze, gdy jest używany do testowania wydajności serwerów memcached.
W większości przypadków wąskim gardłem jest sieć lub serwer. Jeśli z jakiegoś powodu użytkownik
chce ograniczyć działanie memaslapu, można to zrobić na dwa sposoby:

Zmniejsz liczbę wątków i współbieżności. Użyj opcji „--tps”, aby memaslap
zapewnia ograniczenie przepustowości. Ta opcja pozwala użytkownikowi uzyskać oczekiwane rezultaty
wydajność. Załóżmy na przykład, że maksymalna przepustowość wynosi 50 kops/s dla określonego
konfiguracji można określić przepustowość równą lub mniejszą od przepustowości maksymalnej
za pomocą opcji „--tps”.

okno rozmiar
W większości przypadków użytkownik nie musi określać rozmiaru okna. Domyślne okno
rozmiar to 10 tys. W przypadku Schooner Memcached użytkownik może określić różne rozmiary okien do uzyskania
różne współczynniki pominięć pamięci podręcznej w zależności od przypadku testowego. Memslap testuje współczynnik pominięć pamięci podręcznej pomiędzy
0% i 100%. Jeśli używasz tego narzędzia do testowania wydajności Schooner Memcached, ty
może określić odpowiedni rozmiar okna, aby uzyskać oczekiwany współczynnik pominięć pamięci podręcznej. Formuła dla
obliczenie rozmiaru okna wygląda następująco:

Załóżmy, że rozmiar klucza wynosi 128 bajtów, a rozmiar wartości to 2048 bajtów, oraz
współbieżność=128.

1. Mała pamięć podręczna rozmiar_pamięci = 1M, 100% brak pamięci podręcznej (wszystkie dane pobierane są z dysku SSD). win_size=10 tys

2. rozmiar_pamięci podręcznej=4G

(1). współczynnik pomyłek w pamięci podręcznej 0%

wygrana_rozmiar=8k

(2). współczynnik pomyłek w pamięci podręcznej 5%

wygrana_rozmiar=11k

3. rozmiar_pamięci podręcznej=16G

(1). współczynnik pomyłek w pamięci podręcznej 0%

wygrana_rozmiar=32k

(2). brak pamięci podręcznej

ocena 5%

wygrana_rozmiar=46k

Wzór na obliczenie rozmiaru okna dla współczynnika pominięć pamięci podręcznej 0%:

rozmiar_pamięci podręcznej / współbieżność / (rozmiar_klucza + rozmiar_wartości) * 0.5

Wzór na obliczenie rozmiaru okna dla współczynnika pominięć pamięci podręcznej 5%:

rozmiar_pamięci podręcznej / współbieżność / (rozmiar_klucza + rozmiar_wartości) * 0.7

Weryfikacja
Memslap testuje zarówno weryfikację danych, jak i weryfikację czasu wygaśnięcia. Użytkownik może korzystać
„--verify=" lub „-v”, aby określić proporcję weryfikacji danych. W teorii sprawdza
100% weryfikacja danych. Użytkownik może użyć „--exp_verify=" lub „-e”, aby określić proporcję
weryfikacji terminu ważności. Teoretycznie testuje 100% weryfikację czasu wygaśnięcia. Sprecyzować
opcje „--verbose”, aby uzyskać bardziej szczegółowe informacje o błędach.

Na przykład: --exp_verify=0.01 –verify=0.1 , oznacza to, że 1% obiektów ustawionych za pomocą
upływie czasu ważności, 10% zdobytych obiektów zostanie zweryfikowanych. Jeśli przedmioty zostaną zdobyte,
memaslap sprawdzi czas wygaśnięcia i wartość.

wiele serwerów i konfiguracja wielokrotna
Memslap testuje wiele serwerów w oparciu o wątek samorządny. Jest to ograniczenie
liczba serwerów nie może być większa niż liczba wątków. Memslap przydziela jednego
wątek do obsługi przynajmniej jednego serwera. Użytkownik może użyć opcji „--servers=" lub „-s”.
określ wiele serwerów.

Na przykład:

--servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 --threads=6 --concurrency=36

Powyższe polecenie oznacza, że ​​istnieje 6 wątków, a każdy wątek ma 6 współbieżności
i że wątki 0 i 3 obsługują serwer 0 (10.1.1.1); wątki 1 i 4 obsługują serwer 1
(10.1.1.2); a wątki 2 i 5 obsługują serwer 2 (10.1.1.3).

Wszystkie wątki i współbieżności w memaslap są samorządne.

Podobnie jest z memaslapem. Użytkownik może uruchomić kilka instancji memaslap. Użytkownik może uruchomić
memaslap na różnych komputerach klienckich, aby komunikować się z tym samym serwerem memcached pod adresem
To samo. Zaleca się, aby użytkownik uruchomił różne memaslapy na różnych maszynach
ta sama konfiguracja.

run w wykonać numer tryb or czas tryb
Domyślny memaslap działa w trybie czasu. Domyślny czas działania to 10 minut. Jeśli to razy
się, memaslap zakończy działanie. Nie określaj jednocześnie trybu numerycznego wykonania i trybu czasu
czas; po prostu określ jeden zamiast tego.

Na przykład:

--time=30s (Oznacza to, że test będzie trwał 30 sekund.)

--execute_number=100000 (Oznacza to, że po uruchomieniu 100000 poleceń test zakończy się.)

wysypisko statystyczny Informacja cyklicznie.
Użytkownik może użyć "--stat_freq=" lub "-S", aby określić częstotliwość.

Na przykład:

--stat_freq=20s

Memslap zrzuci statystyki poleceń (get i set) z częstotliwością co
Sekund 20.

Więcej informacji na temat formatu informacji statystycznych dotyczących dumpingu można znaleźć w części „Format
Wyjście”.

Multi-get
Użytkownik może użyć „--division=" lub „-d”, aby określić liczbę kluczy wielokrotnego pobierania. Memslap autorstwa
domyślnie pobiera pojedynczo z TCP. Memslap testuje również weryfikację danych i czas wygaśnięcia
weryfikacja dla multi-get.

Memslap testuje multi-get zarówno z protokołem TCP, jak i UDP. Ze względu na różną implementację
protokół ASCII i protokół binarny, istnieją między nimi pewne różnice. Dla
protokołu ASCII, memaslap wysyła jednorazowo jeden „multi-get” do serwera. Dla binarnego
protokołu memaslap wysyła kilka pojedynczych poleceń get razem jako „multi-get” do
serwer.

UDP i TCP
Memslap testuje zarówno UDP, jak i TCP. W przypadku protokołu TCP memaslap nie łączy ponownie z serwerem memcached
w przypadku utraty połączeń gniazdowych. Jeśli wszystkie połączenia z gniazdem zostaną utracone lub serwer memcached zostanie uszkodzony
ulegnie awarii, memaslap zakończy działanie. Jeśli użytkownik określi opcję „--reconnect” podczas korzystania z gniazda Socket
połączenia zostaną utracone, połączy je ponownie.

Użytkownik może użyć „--udp”, aby włączyć funkcję UDP, ale protokół UDP ma pewne ograniczenia:

UDP nie może ustawić danych większych niż 1400 bajtów.

UDP nie jest testowany przez protokół binarny, ponieważ robi to protokół binarny memcached
nie testuje tego.

UDP nie testuje ponownego połączenia.

Facebook test
Ustaw dane za pomocą protokołu TCP i multi-get za pomocą UDP. Określ następujące opcje:

„--facebook --division=50”

Jeśli chcesz utworzyć tysiące połączeń TCP, określ

Opcja „--conn_sock=".

Na przykład: --facebook --division=50 --conn_sock=200

Powyższe polecenie oznacza, że ​​memaslap wykona test na Facebooku, każda współbieżność ma 200
gniazda TCP i jedno gniazdo UDP.

Memslap ustawia obiekty za pomocą gniazda TCP i pobiera jednorazowo 50 obiektów za pomocą protokołu UDP
gniazdo elektryczne.

Jeśli określisz „--division=50”, rozmiar klucza musi być mniejszy niż 25 bajtów, ponieważ protokół UDP
Rozmiar pakietu wynosi 1400 bajtów.

Replikacja test
Do testu replikacji użytkownik musi określić co najmniej dwa serwery memcached. Użytkownik może
użyj opcji „—rep_write=”, aby włączyć tę funkcję.

Na przykład:

--servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2

Powyższe polecenie oznacza, że ​​istnieją 2 serwery z replikacją memcached, memaslap zostanie ustawiony
obiekty zarówno do serwera 0, jak i serwera 1, pobierz obiekty, które wcześniej były ustawione na serwerze 0
serwer 1, a także pobierz obiekty ustawione wcześniej na serwer 1 z serwera 0. Jeśli serwer 0
ulega awarii, memaslap pobierze tylko obiekty z serwera 1. Jeśli serwer 0 powróci do życia
ponownie, memaslap ponownie połączy się z serwerem 0. Jeśli zarówno serwer 0, jak i serwer 1 ulegnie awarii, memaslap
wyjdzie.

podpory tysiące of TCP połączenia
Rozpocznij memaslap za pomocą „--conn_sock=" lub „-n”, aby włączyć tę funkcję. Upewnij się, że Twoje
system może testować otwieranie tysięcy plików i tworzenie tysięcy gniazd. Jednakże,
ta funkcja nie testuje ponownego połączenia w przypadku rozłączenia gniazd.

Na przykład:

--threads=8 --concurrency=128 --conn_sock=128

Powyższe polecenie oznacza, że ​​memaslap uruchamia 8 wątków, każdy wątek ma 16
współbieżności, każda współbieżność ma 128 połączeń gniazd TCP, a łączna liczba
Połączenia gniazd TCP to 128 * 128 = 16384.

podpory dwójkowy protokół
Rozpocznij memaslap z opcjami „--binary” lub „-B”, aby włączyć tę funkcję. Testuje wszystko
powyższe funkcje z wyjątkiem UDP, ponieważ najnowsza wersja memcached 1.3.3 nie implementuje plików binarnych
Protokół UDP.

Na przykład:

--dwójkowy

Ponieważ memcached 1.3.3 nie implementuje binarnego protokołu UDP, memaslap nie testuje UDP.
Ponadto memcached 1.3.3 nie testuje funkcji multi-get. Jeśli określisz „--division=50”
opcję, po prostu wysyła do serwera 50 poleceń get jako „mulit-get”.

KONFIGURACJA FILE


W tej sekcji opisano format pliku konfiguracyjnego. Domyślnie, gdy nie
określono plik konfiguracyjny. memaslap odczytuje domyślny plik znajdujący się pod adresem ~/.memaslap.cnf.

Poniżej znajduje się przykładowy plik konfiguracyjny:

-------------------------------------------------- -------------------------
#komentarze powinny zaczynać się od „#”
#klucz
#start_len end_len proporcja
#
#zakres długości klucza od start_len do end_len
#start_len musi być równy lub większy niż 16
#end_len musi być równy lub mniejszy niż 250
#start_len musi być równy lub większy niż end_len
#memaslap wygeneruje klucze zgodnie z zakresem kluczy
#proporcja: wskazuje klucze wygenerowane z jednego zakresu kont w sumie
wygenerowane klucze
#
#przykład1: zakres klawiszy 16~100 stanowi 80%
# zakres kluczy 101 ~ 200 stanowi 10%
# zakres kluczy 201 ~ 250 stanowi 10%
# suma powinna wynosić 1 (0.8+0.1+0.1 = 1)
#
# 16 100 0.8
# 101 200 0.1
# 201 249 0.1
#
#przykład2: długość wszystkich kluczy wynosi 128 bajtów
#
# 128 128 1
klucz
128 128 1
#wartość
#start_len end_len proporcja
#
#wartość zakres długości od start_len do end_len
#start_len musi być równy lub większy niż 1
#end_len musi być równy lub mniejszy niż 1M
#start_len musi być równy lub większy niż end_len
#memaslap wygeneruje wartości zgodnie z zakresem wartości
#proporcja: wskazuje wartości wygenerowane z jednego zakresu kont dla
całkowite wygenerowane wartości
#
#przykład1: zakres wartości 1~1000 stanowi 80%
# zakres wartości 1001~10000 stanowi 10%
# zakres wartości 10001~100000 stanowi 10%
# suma powinna wynosić 1 (0.8+0.1+0.1 = 1)
#
# 1 1000 0.8
# 1001 10000 0.1
# 10001 100000 0.1
#
#przykład2: długość wszystkich wartości wynosi 128 bajtów
#
# 128 128 1
wartość
2048 2048 1
#cmd
#cmd_type cmd_proporcja
#
#obecnie testuje tylko memaslap, pobierz i ustaw komendę.
#
#cmd_type
#ustaw 0
#zdobądź 1
#
#przykład: ustaw konta poleceń na 50%
# zdobądź konta dowodzenia za 50%
# suma powinna wynosić 1 (0.5 + 0.5 = 1)
#
# cmd
# 0 0.5
# 1 0.5
cmd
0 0.1
1.0 0.9

FORMAT OF WYDAJNOŚĆ


Na początku memaslap wyświetla pewne informacje konfiguracyjne w następujący sposób:

serwery: 127.0.0.1:11211

liczba wątków: 1

współbieżność: 16

czas trwania: 20s

wielkość okien: 10 tys

ustaw proporcję: set_prop=0.10

uzyskaj proporcję: get_prop=0.90

Gdzie
serwery: „serwery”
Serwery używane przez memaslap.

wątki się liczą
Liczba wątków, z którymi działa memaslap.

współbieżność
Liczba współbieżności, z którymi działa memaslap.

czas pracy
Jak długo uruchamiać memaslap.

rozmiar okien
Rozmiar okna zadań dla każdej współbieżności.

ustalona proporcja
Proporcja ustawionego polecenia.

uzyskać proporcję
Proporcja polecenia get.

Dane wyjściowe statystyk dynamicznych są mniej więcej takie:

-------------------------------------------------- -------------------------------------------------- -----------------------------
Uzyskaj statystyki
Typ Czas(y) Operacje TPS(ops/s) Netto(M/s) Get_miss Min(us) Max(us)
Średnia(nas) Std_dev Geo_dist
Okres 5 345826 69165 65.3 0 27 2198 203
95.43 177.29
Globalny 20 1257935 62896 71.8 0 26 3791 224
117.79 192.60

Ustaw statystyki
Typ Czas(y) Operacje TPS(ops/s) Netto(M/s) Get_miss Min(us) Max(us)
Średnia(nas) Std_dev Geo_dist
Okres 5 38425 7685 7.3 0 42 628 240
88.05 220.21
Globalny 20 139780 6989 8.0 0 37 3790 253
117.93 224.83

Łączne statystyki
Typ Czas(y) Operacje TPS(ops/s) Netto(M/s) Get_miss Min(us) Max(us)
Średnia(nas) Std_dev Geo_dist
Okres 5 384252 76850 72.5 0 27 2198 207
94.72 181.18
Globalny 20 1397720 69886 79.7 0 26 3791 227
117.93 195.60
-------------------------------------------------- -------------------------------------------------- -----------------------------

Gdzie
Uzyskaj statystyki
Informacje statystyczne dotyczące polecenia get

Ustaw statystyki
Informacje statystyczne dotyczące polecenia set

Łączne statystyki
Informacje statystyczne dotyczące poleceń get i set

Okres
Wynik w określonym terminie

Globalne
Skumulowane wyniki

ops
Operacje ogółem

TPS
Przepustowość, operacje/sekundę

Netto
Szybkość sieci

Get_miss
Ile przedmiotów nie można zdobyć

Min
Minimalny czas reakcji

Max
Maksymalny czas reakcji

Średnia:
Średni czas reakcji

Odch_std
Odchylenie standardowe czasu odpowiedzi

Geo_odległ
Rozkład geometryczny oparty na naturalnej funkcji wykładniczej

Na koniec memaslap wyświetli coś takiego:

-------------------------------------------------- -------------------------------------------------- -----------------------------
Uzyskaj statystyki (1257956 zdarzeń)
Min: 26
Max: 3791
Średnia: 224
Geo: 192.60
Standard: 116.23
Odległość log2:
4: 0 10 84490 215345
8: 484890 459823 12543 824
12: 31

Ustaw statystyki (139782 zdarzeń)
Min: 37
Max: 3790
Średnia: 253
Geo: 224.84
Standard: 116.83
Odległość log2:
4: 0 0 4200 16988
8: 50784 65574 2064 167
12: 5

Statystyki ogółem (1397738 zdarzeń)
Min: 26
Max: 3791
Średnia: 227
Geo: 195.60
Standard: 116.60
Odległość log2:
4: 0 10 88690 232333
8: 535674 525397 14607 991
12: 36

cmd_get: 1257969
cmd_set: 139785
get_misses: 0
zweryfikować_pominięcia: 0
zweryfikować_niepowodzenie: 0
wygasł_get: 0
niewygasły_unget: 0
zapisane_bajty: 242516030
read_bytes: 1003702556
bajty_obiektu: 152086080
zaburzenie_pakietu: 0
pakiet_drop: 0
udp_timeout: 0

Czas pracy: 20.0 s Ops: 1397754 TPS: 69817 Net_rate: 59.4 M/s
-------------------------------------------------- -------------------------------------------------- -----------------------------

Gdzie
Uzyskaj statystyki
Uzyskaj statystyki czasu reakcji

Ustaw statystyki
Ustaw statystyki czasu reakcji

Łączne statystyki
Oba pobierają i ustawiają statystyki czasu odpowiedzi

Min
Skumulowany i minimalny czas odpowiedzi

Max
Skumulowany i maksymalny czas odpowiedzi

Śr
Skumulowany i średni czas odpowiedzi

Std
Odchylenie standardowe czasu odpowiedzi

Log2 Odległ
Rozkład geometryczny na podstawie logarytmu 2

cmd_get
Całkowite wykonanie poleceń

cmd_set
Wykonano ogółem poleceń zestawu

get_misses
Ile obiektów nie można pobrać z serwera

zweryfikuj_brak
Ile obiektów należy zweryfikować, ale nie można ich uzyskać

zweryfikować_nie ​​powiodło się
Ile obiektów o uporczywej wartości

wygasł_get
Ile obiektów wygasło, ale je dostajemy

niewygasły_unget
Ile obiektów nie straciło ważności, ale nie możemy ich zdobyć

zapisane_bajty
Całkowita liczba zapisanych bajtów

odczyt_bajtów
Całkowita liczba odczytanych bajtów

obiekt_bajty
Całkowita liczba bajtów obiektu

zaburzenie_pakietu
Ile pakietów UDP jest nieporządnych

pakiet_drop
Ile pakietów UDP zostało utraconych

udp_timeout
Ile razy zdarza się przekroczenie limitu czasu UDP

Czas pracy
Całkowity czas pracy

ops
Operacje ogółem

TPS
Przepustowość, operacje/sekundę

stawka_netto
Średnia stawka sieci

OPCJE


-tak, --serwery=
Wymień jeden lub więcej serwerów, z którymi chcesz się połączyć. Liczba serwerów musi być mniejsza niż liczba wątków.
np.: --servers=localhost:1234,localhost:11211

-T, --wątki=
Liczba wątków do uruchomienia, lepiej równa numerom procesora. Domyślnie 8.

-C, --współbieżność=
Liczba współbieżności do symulacji przy obciążeniu. Domyślnie 128.

-N, --conn_sock=
Liczba skarpet TCP na współbieżność. Domyślnie 1.

-X, -- numer_wykonania =
Liczba operacji (get i set) do wykonania dla danego testu. Domyślnie 1000000.

-T, --czas=
Czas trwania testu, przyrostek: s-sekundy, m-minuty, h-godziny, d-dni, np.:
--czas=2h.

-F, --cfg_cmd=
Załaduj plik konfiguracyjny, aby uzyskać listę dystrybucji poleceń, kluczy i wartości.

-w, --win_rozmiar=
Rozmiar okna zadań dla każdej współbieżności, przyrostek: K, M np.: --win_size=10k. Domyślny
10 tys.

-X, --stały_rozmiar=
Stała długość wartości.

-v, --weryfikuj=
Proporcja weryfikacji daty, np.: --verify=0.01

-D, --podział=
Liczba kluczy do jednorazowego zdobycia wielokrotnego. Domyślnie 1, oznacza pojedyncze uzyskanie.

-S, --stat_częst.=
Częstotliwość dumpingu informacji statystycznych. przyrostek: s-sekundy, m-minuty, np.:
--resp_freq=10s.

-mi, --exp_verify=
Proporcja obiektów z czasem ważności, np.: --exp_verify=0.01. Domyślny nr
obiekt z terminem ważności

-o, --nadpisz=
Proporcje obiektów wymagają nadpisania, np.: --overwrite=0.01. Domyślnie nigdy
nadpisz obiekt.

-R, --na nowo połączyć
Połącz ponownie testy, po zamknięciu połączenia zostanie ono ponownie połączone.

-U, --udp
Testy UDP, domyślny memaslap używa protokołu TCP, port TCP i port UDP serwera muszą być takie same.

-a, --Facebook
Czy włącza funkcję testowania Facebooka, ustaw za pomocą protokołu TCP i multi-get za pomocą UDP.

-B, --dwójkowy
Czy umożliwia protokół binarny. Domyślnie z protokołem ASCII.

-P, --tps=
Oczekiwana przepustowość, przyrostek: K, np.: --tps=10k.

-P, --rep_write=
Pierwsze n-te serwery mogą zapisywać dane, np.: --rep_write=2.

-b, --gadatliwy
Czy wyświetla szczegółowe informacje w przypadku niepowodzenia weryfikacji.

-h, --help
Wyświetl ten komunikat, a następnie wyjdź.

-V, --wersja
Wyświetl wersję aplikacji i wyjdź.

PRZYKŁADY


memaslap -s 127.0.0.1:11211 -S 5s

memaslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b

memaslap -s 127.0.0.1:11211 -F konfiguracja -t 2m -w 40k -S 20s -o 0.2

memaslap -s 127.0.0.1:11211 -F konfiguracja -t 2m -T 4 -c 128 -d 20 -P 40k

memaslap -s 127.0.0.1:11211 -F konfiguracja -t 2m -d 50 -a -n 40

memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F konfiguracja -t 2m

memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F konfiguracja -t 2m -p 2

HOME


Aby dowiedzieć się więcej, sprawdź: http://libmemcached.org/

AUTORSKI


Mingqiang Zhuang[email chroniony]> (Technologia szkunerów) Brian Aker, <‐
[email chroniony]>

Korzystaj z memcaslap online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    HAUST
    HAUST
    SWIG to narzędzie do tworzenia oprogramowania
    która łączy programy napisane w C i
    C++ z różnymi wysokopoziomowymi
    języki programowania. SWIG jest używany z
    różne...
    Pobierz SWIG
  • 2
    Motyw WooCommerce Nextjs React
    Motyw WooCommerce Nextjs React
    Motyw React WooCommerce, zbudowany z
    Następny JS, Webpack, Babel, Node i
    Express, używając GraphQL i Apollo
    Klient. Sklep WooCommerce w React(
    zawiera: Produkty...
    Pobierz motyw WooCommerce Nextjs React
  • 3
    archlabs_repo
    archlabs_repo
    Repozytorium pakietów dla ArchLabs To jest plik
    aplikacja, którą można również pobrać
    od
    https://sourceforge.net/projects/archlabs-repo/.
    Został on hostowany w OnWorks w...
    Pobierz archlabs_repo
  • 4
    Projekt Zefir
    Projekt Zefir
    Projekt Zephyr to nowa generacja
    system operacyjny czasu rzeczywistego (RTOS).
    obsługuje wiele urządzeń
    architektury. Opiera się na A
    małe jądro...
    Pobierz projekt Zephyr
  • 5
    Scons
    Scons
    SCons to narzędzie do tworzenia oprogramowania
    jest lepszą alternatywą dla
    klasyczne narzędzie do budowania „Make”.
    wszyscy znamy i kochamy. SCons jest
    wdrożył...
    Pobierz SCons
  • 6
    PSeInt
    PSeInt
    PSeInt to interpreter pseudokodu dla
    hiszpańskojęzyczni studenci programowania.
    Jego głównym celem jest bycie narzędziem do
    nauka i zrozumienie podstaw
    koncepcja...
    Pobierz PSeInt
  • więcej »

Komendy systemu Linux

Ad