Zur Messung der Leistung von Ignite wird ein Benchmark namens "Yardstick Apache Ignite (Yardstick-Ignite)" bereitgestellt. Dieser Benchmark basiert auf dem Yardstick Framework. Yardstick ist ein Framework zum Schreiben von Benchmarks und wird zum Erstellen von Benchmarks für Cluster-Systeme und andere verteilte Systeme verwendet.
Lassen Sie uns die Leistung von Ignite mit Yardstick messen.
Ich beziehe mich auf Folgendes.
https://apacheignite.readme.io/docs/perfomance-benchmarking
Wir haben die folgenden drei Server auf VirtualBox erstellt. Jeder Server ist CentOS7 mit 1 Kern und 3 GB Speicher.
igniteserver1: Server für Ignite-Cluster (192.168.10.71) igniteserver2: Server für Ignite-Cluster (192.168.10.72) igniteserver3: Server für Yardstick (192.168.10.73)
Ignite ist bereits in jeder Umgebung installiert. Da Yardstick den in Ignite enthaltenen verwendet, gibt es keine Umgebungskonstruktion.
Weitere Informationen zum Installieren von Apache Ignite finden Sie im folgenden Artikel.
Erste Schritte mit In-Memory Data Grid Apache Ignite (Java)
Für Ignite stehen 24 Standard-Benchmarks zur Verfügung: Dieses Mal werde ich 2 bis 5 Benchmarks ausprobieren.
Es gibt 2 Arten von Atomic und Transaktion x 2 Arten von put / put + get = 4 Arten, die ausgeführt werden müssen.
Wenn Sie Ignite unter "/ opt / apache-ignite" installiert haben, befindet sich der Yardstick unter "/ opt / apache-ignite / Benchmarks".
Der Ignite-Cluster wird automatisch von Yardstick aus gestartet und muss nicht gestartet werden.
Ändern Sie die Einstellungen in "ignite-remote-config.xml", um eine Remoteverbindung zum Ignite-Cluster herzustellen und den Benchmark auszuführen.
cd /opt/apache-ignite/benchmarks/config
vi ignite-remote-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
Ignite Spring configuration file to startup grid.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<import resource="ignite-base-config.xml"/>
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" parent="base-ignite.cfg">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean
class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<!-- In distributed environment, replace with actual hosts IP addresses. -->
<value>192.168.10.71:47500</value>
<value>192.168.10.72:47500</value>
</list>
</property>
</bean>
</property>
</bean>
</property>
</bean>
</beans>
Ändern Sie dann die Benchmark-Einstellungen. Es gibt eine Beispieldatei mit dem Namen "Benchmark-remote-sample.properties". Kopieren Sie sie, um eine Einstellungsdatei zu erstellen.
cp -p benchmark-remote-sample.properties benchmark-remote-test.properties
vi benchmark-remote-test.properties
Geben Sie die IP-Adresse des Ignite-Knotens in das Feld SERVER_HOSTS der Eigenschaftendatei ein.
SERVER_HOSTS=192.168.10.71,192.168.10.72
Fügen Sie einen Benchmark zum Ausführen hinzu. Erstellen Sie unter Bezugnahme auf "Benchmark.properties".
# Run configuration.
# Note that each benchmark is set to run for 300 seconds (5 min) with warm-up set to 60 seconds (1 minute).
CONFIGS="\
-cfg ${SCRIPT_DIR}/../config/ignite-remote-config.xml -nn ${nodesNum} -b ${b} -w ${w} -d ${d} -t ${t} -sm ${sm} -dn IgnitePutBenchmark -sn IgniteNode -ds ${ver}atomic-put-${b}-backup,\
-cfg ${SCRIPT_DIR}/../config/ignite-remote-config.xml -nn ${nodesNum} -b ${b} -w ${w} -d ${d} -t ${t} -sm ${sm} -dn IgnitePutGetBenchmark -sn IgniteNode -ds ${ver}atomic-put-get-${b}-backup,\
-cfg ${SCRIPT_DIR}/../config/ignite-remote-config.xml -nn ${nodesNum} -b ${b} -w ${w} -d ${d} -t ${t} -sm ${sm} -dn IgnitePutTxBenchmark -sn IgniteNode -ds ${ver}tx-put-${b}-backup,\
-cfg ${SCRIPT_DIR}/../config/ignite-remote-config.xml -nn ${nodesNum} -b ${b} -w ${w} -d ${d} -t ${t} -sm ${sm} -dn IgniteGetAndPutTxBenchmark -sn IgniteNode -ds ${ver}tx-getAndPut-${b}-backup,\
"
Ermöglicht das SSH in jeden Ignorierknoten vom Server, auf dem Yardstick ausgeführt wird (er scheint als Treiber bezeichnet zu werden).
# ssh-keygen -t rsa
(Geben Sie keine Passphrase ein)
# ssh-copy-id [email protected]
# ssh-copy-id [email protected]
# ssh [email protected]
# ssh [email protected]
Starten Sie den Benchmark mit "Benchmark-run-all.sh".
[root@igniteserver3 config]# ../bin/benchmark-run-all.sh ./benchmark-remote-test.properties
<02:20:00><yardstick> Creating output directory
../bin/benchmark-run-all.sh: line 73: ifconfig: command not found
<02:20:00><yardstick> Copying yardstick to the host 192.168.10.71
Warning: Permanently added '192.168.10.71' (ECDSA) to the list of known hosts.
Wenn ich den Benchmark ausführe, ärgere ich mich ohne ifconfig wie oben, also installiere Net-Tools.
# yum install -y net-tools
Wenn Sie es mit Strg-C beenden, bleibt der Knoten Ignorieren aktiv. Wenn Sie den Benchmark in diesem Status erneut ausführen, werden auch die verbleibenden Ignorierknoten dem Cluster beigetreten. Wenn Sie also die Beendigung erzwingen, müssen Sie die Ignorierknoten einzeln stoppen.
In Visor scheinen drei Server zu laufen. Ich dachte, einer wäre der Kunde, aber das scheint nicht der Fall zu sein.
visor> top
Hosts: 3
+============================================================================================================================+
| Int./Ext. IPs | Node ID8(@) | Node Type | OS | CPUs | MACs | CPU Load |
+============================================================================================================================+
| 10.0.2.15 | 1: 0908F8F4(@n0) | Server | Linux amd64 3.10.0-693.2.2.el7.x86_64 | 1 | 02:42:4A:05:5B:CD | 55.00 % |
| 127.0.0.1 | | | | | 08:00:27:76:F3:CF | |
| 172.17.0.1 | | | | | 08:00:27:E3:4A:44 | |
| 192.168.10.71 | | | | | | |
+---------------+------------------+-----------+---------------------------------------+------+-------------------+----------+
| 10.0.2.15 | 1: 02A9366F(@n1) | Server | Linux amd64 3.10.0-693.2.2.el7.x86_64 | 1 | 08:00:27:76:F3:CF | 51.33 % |
| 127.0.0.1 | | | | | 08:00:27:7F:64:16 | |
| 192.168.10.72 | | | | | | |
+---------------+------------------+-----------+---------------------------------------+------+-------------------+----------+
| 10.0.2.15 | 1: 97EFB660(@n2) | Server | Linux amd64 3.10.0-693.2.2.el7.x86_64 | 1 | 08:00:27:64:78:7A | 90.33 % |
| 127.0.0.1 | | | | | 08:00:27:76:F3:CF | |
| 192.168.10.73 | | | | | | |
+----------------------------------------------------------------------------------------------------------------------------+
Summary:
+--------------------------------------+
| Active | true |
| Total hosts | 3 |
| Total nodes | 3 |
| Total CPUs | 3 |
| Avg. CPU load | 65.56 % |
| Avg. free heap | 83.00 % |
| Avg. Up time | 00:03:58 |
| Snapshot time | 2018-08-25 02:48:02 |
+--------------------------------------+
Bei "Cache -a" wird der Cache wie unten gezeigt auf allen drei Servern gespeichert. Dies bedeutet, dass sich der Treiberserver ebenfalls im Ignoriercluster befindet und das Ziel der Leistungsmessung zu sein scheint.
Cache 'atomic(@c0)':
+-----------------------------------------------------------+
| Name(@) | atomic(@c0) |
| Nodes | 3 |
| Total size Min/Avg/Max | 305670 / 333334.33 / 350590 |
| Heap size Min/Avg/Max | 0 / 1.00 / 3 |
| Off-heap size Min/Avg/Max | 305670 / 333333.33 / 350587 |
+-----------------------------------------------------------+
Nodes for: atomic(@c0)
+============================================================================================================+
| Node ID8(@), IP | CPUs | Heap Used | CPU Load | Up Time | Size | Hi/Mi/Rd/Wr |
+============================================================================================================+
| 02A9366F(@n1), 10.0.2.15 | 1 | 29.76 % | 40.33 % | 00:06:43.146 | Total: 305670 | Hi: 0 |
| | | | | | Heap: 0 | Mi: 0 |
| | | | | | Off-Heap: 305670 | Rd: 0 |
| | | | | | Off-Heap Memory: 0 | Wr: 0 |
+--------------------------+------+-----------+----------+--------------+----------------------+-------------+
| 0908F8F4(@n0), 10.0.2.15 | 1 | 24.59 % | 45.00 % | 00:06:43.395 | Total: 343743 | Hi: 0 |
| | | | | | Heap: 0 | Mi: 0 |
| | | | | | Off-Heap: 343743 | Rd: 0 |
| | | | | | Off-Heap Memory: 0 | Wr: 0 |
+--------------------------+------+-----------+----------+--------------+----------------------+-------------+
| 927AB38D(@n2), 10.0.2.15 | 1 | 20.24 % | 88.00 % | 00:00:34.269 | Total: 350590 | Hi: 0 |
| | | | | | Heap: 3 | Mi: 0 |
| | | | | | Off-Heap: 350587 | Rd: 0 |
| | | | | | Off-Heap Memory: 0 | Wr: 0 |
+------------------------------------------------------------------------------------------------------------+
Wenn die Ausführung des Benchmarks abgeschlossen ist, wird das Ergebnis automatisch als Grafik ausgegeben.
<03:08:51><yardstick> Driver is stopped on localhost
<03:08:51><yardstick> Server is stopped on 192.168.10.71
<03:08:51><yardstick> Server is stopped on 192.168.10.72
<03:08:52><yardstick> Collecting results from the host 192.168.10.71
<03:08:53><yardstick> Collecting results from the host 192.168.10.72
<03:08:54><yardstick> Creating charts
Moving chart directory to the /opt/apache-ignite/benchmarks/output/results-20180825-024401 directory.
Es wird als HTML-Datei ausgegeben und wie unten gezeigt angezeigt.
Bei Put liegt der Durchschnitt bei 38.000 Vorgängen (blau). Wenn Sie jedoch Transaktionen aktivieren, sehen Sie, dass der Durchschnitt bei etwa 11.000 (rot) liegt. Da der Benchmark von Anfang an enthalten war, war es einfach, die Leistung zu messen. Dieses Mal habe ich es mit den Standardparametern ausgeführt, aber in Zukunft möchte ich verschiedene Änderungen vornehmen und die Änderungen in der Leistung überprüfen.
YCSB (Yahoo Cloud Serving Benchmark)
YCSB (Yahoo Cloud Serving Benchmark) scheint ebenfalls Ignite zu unterstützen.
Die Ergebnisse der Benchmark mit YCSB sind unten aufgeführt. Apache® Ignite™ and Apache® Cassandra™ Benchmarks: The Power of In-Memory Computing https://www.gridgain.com/resources/blog/apacher-ignitetm-and-apacher-cassandratm-benchmarks-power-in-memory-computing
Recommended Posts