Heim  >  Artikel  >  Computer-Tutorials  >  Haben Sie diese Stresstest-Tools für Linux-Systeme verwendet?

Haben Sie diese Stresstest-Tools für Linux-Systeme verwendet?

王林
王林nach vorne
2024-03-21 16:12:451096Durchsuche

Haben Sie diese Stresstest-Tools für Linux-Systeme verwendet?

Sind Sie als Betriebs- und Wartungspersonal schon einmal auf dieses Szenario gestoßen? Sie müssen Tools verwenden, um eine hohe CPU- oder Speicherauslastung des Systems zu testen, um Alarme auszulösen, oder die Parallelitätsfähigkeiten des Dienstes durch Stresstests testen. Als Betriebs- und Wartungsingenieur können Sie mit diesen Befehlen auch Fehlerszenarien nachbilden. Dann kann Ihnen dieser Artikel dabei helfen, häufig verwendete Testbefehle und -tools zu beherrschen.

1. Vorwort

Um Probleme im Projekt zu lokalisieren und zu reproduzieren, müssen in manchen Fällen Tools zur Durchführung systematischer Stresstests zur Simulation und Wiederherstellung von Fehlerszenarien eingesetzt werden. Zu diesem Zeitpunkt sind Test- oder Stresstest-Tools besonders wichtig. Als Nächstes werden wir die Verwendung dieser Tools in verschiedenen Szenarien untersuchen.

2. Testwerkzeuge

2.1 Tool zur Netzwerkgeschwindigkeitsbegrenzung tc

tc ist ein Befehlszeilentool unter Linux zum Anpassen von Netzwerkparametern. Es kann zur Simulation verschiedener Netzwerkbedingungen verwendet werden, einschließlich der Begrenzung der Netzwerkbandbreite und Latenz. Das Hauptanwendungsszenario besteht darin, Netzwerkumgebungen zu simulieren, die in der realen Welt während des Tests auftreten können, um die Leistung des Systems unter diesen Bedingungen zu bewerten. Tools zur Begrenzung der Netzwerkgeschwindigkeit werden häufig verwendet, um unterschiedliche Netzwerkgeschwindigkeiten und -stabilitäten zu simulieren, damit Entwickler besser verstehen können, wie sich ihre Anwendungen in verschiedenen Netzwerkumgebungen verhalten. Durch Anpassen der Parameter des tc-Befehls können niedrige Bandbreite, hohe Latenz, Paketverlust usw. simuliert werden, wodurch Entwickler ihre Anwendungen optimieren und sicherstellen können, dass sie unter verschiedenen Netzwerkbedingungen funktionieren

Anwendungsbeispiele

# 设置延时30ms
sudo tc qdisc add dev eth0 root netem delay 30ms

# 范围内延时(10-50ms)
sudo tc qdisc add dev eth0 root netem delay 30ms 20ms 

#设置丢包10%
sudo tc qdisc add dev eth0 root netem loss 10%

#删除丢包设置
sudo tc qdisc del dev eth0 root netem loss 10%

# 显示延时的设置 :
sudo tc qdisc show
sudo tc qdisc show dev eth0

# 修改延时:
sudo tc qdisc change dev eth0 root netem delay 40ms

#随机产生1%的重复数据包
sudo tc qdisc add dev eth0 root netem duplicate 1%

#设置数据包乱序
sudo tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%

# 删除延时
sudo tc qdisc del dev eth0 root netem delay 40ms

Tatsächliche Testergebnisse: Wir haben die Host-Paketverlustverzögerung auf 40 ms eingestellt, die Verzögerung vor der Änderung ist wie folgt

Verzögerung auf 40 ms einstellen

[root@knode1 ~]# sudo tc qdisc add dev ens33 root netem delay 40ms
[root@knode1 ~]# sudo tc qdisc show dev ens33
qdisc netem 8002: root refcnt 2 limit 1000 delay 40.0ms

Ping-Test noch einmal, der Effekt ist immer noch sehr offensichtlich, es ist wirklich einfach zu bedienen, für mehr Verwendung, Freunde, bitte studiert es selbst

2.2 CPU-Speicher-Testtool – Stress

Stress ist ein Stresstest-Tool unter Linux, das Hochlastbedingungen auf der CPU und dem Speicher simulieren kann, um die Stabilität des Systems zu testen.

CPU-/Speicher-/Festplattentesttools werden normalerweise verwendet, um die Stabilität des Systems unter Hochlastbedingungen zu bewerten und die Leistungsgrenzen des Systems zu erkennen. Darüber hinaus kann das Stress-Tool bei der Durchführung von Alarmtests verwendet werden, um die Leistung des Systems unter Stress zu simulieren und dabei zu helfen, die Zuverlässigkeit und Reaktionsfähigkeit des Systems zu bewerten. Mithilfe dieser Tools erhalten Sie ein umfassenderes Verständnis der Systemleistung unter verschiedenen Lastbedingungen, sodass Sie bei Bedarf entsprechende Optimierungsmaßnahmen ergreifen können, um sicherzustellen, dass das System im tatsächlichen Betrieb stabil und zuverlässig ist.

Werkzeuginstallation

sudo apt-get install stress #ubuntu系统
yum install stress#Centos系统

Testen Sie dann die CPU und den Speicher:

Testen Sie die CPU, führen Sie 4 Prozesse kontinuierlich aus

# stress --io 2 --cpu 4 --vm 2 --vm-bytes 80M --timeout 1440m
--cpu N:
生成 N 个工作进程来施加 CPU 负载。

# stress --cpu 8 会创建 8 个进程,每个都尝试占用 100% 的 CPU 时间。
--io N:
生成 N 个工作进程来执行 I/O 操作,增加 I/O 负载。

# stress --io 4 会创建 4 个 I/O 生成进程。
--vm N:

# 生成 N 个工作进程来分配内存并定期写入随机数据。
每个进程默认分配 256MB 内存。
--vm-bytes B:

#指定每个 --vm 工作进程分配的内存量。
stress --vm 2 --vm-bytes 128M 会生成 2 个工作进程,每个分配 128MB 内存。
--hdd N:

# 生成 N 个工作进程来执行磁盘 I/O 操作。
stress --hdd 2 会创建 2 个磁盘 I/O 生成进程。
--hdd-bytes B:

# 指定每个 --hdd 工作进程写入磁盘的数据量。
stress --hdd 1 --hdd-bytes 1G 会创建一个工作进程来写入 1GB 的数据。
--timeout T:

# 指定 stress 运行的时间,T 是时间,可以是秒(默认)、分钟(加 m)、小时(加 h)。
stress --cpu 4 --timeout 30s 会在 30 秒后停止 CPU 负载测试

# 显示详细信息,包括生成的工作进程的状态。
--verbose:

Experiment: Stresstest 4 CPUs, Dauer 180s

stress --cpu 4 --timeout 180s

Speicher testen, 1 GB Speicher zuweisen

stress --vm 2 --vm-bytes 20G --timeout 360s
--vm 2: 表示启动2个虚拟内存压力工作线程。
--vm-bytes 20G: 每个工作线程使用的虚拟内存大小为20GB。
--timeout 360s: 设置压力测试持续时间为360秒(6分钟)

2.3 Tool zum Testen der Festplattengeschwindigkeit dd

dd ist ein Befehlszeilentool unter Linux zum Kopieren von Dateien und Konvertieren von Daten. Dadurch können wir die Lese- und Schreibgeschwindigkeit der Festplatte testen.

Nutzungsszenarien: Tools zum Testen der Festplattengeschwindigkeit werden häufig verwendet, um die Festplattenleistung zu bewerten, die am besten geeignete Speicherlösung auszuwählen und festzustellen, ob es Leistungsengpässe auf der Festplatte gibt.

Um die Lese- und Schreibgeschwindigkeit zu testen, können Sie verschiedene Parameter des dd-Befehls verwenden. Um beispielsweise die Lesegeschwindigkeit zu testen, können Sie den Parameter if verwenden, um Daten aus einer Datei zu lesen, und um die Schreibgeschwindigkeit zu testen, können Sie den Parameter of verwenden, um Daten in eine Datei zu schreiben.

Schreibgeschwindigkeit testen:

dd if=/dev/zero of=/data/test bs=4k count=100k

Dadurch werden keine Daten in die Datei /data/test geschrieben, um die Schreibgeschwindigkeit zu testen

dd if=/data/test of=/dev/null bs=4k

Dadurch werden die Daten aus der Datei /data/test gelesen und verworfen, wodurch die Lesegeschwindigkeit getestet wird.

注:也可以使用fio来测磁盘速度

2.4. Stresstest-Tool für den Verkehrszugang – ab

ab ist ein kleines Tool, das mit Apache geliefert wird und zum Testen der Leistung von HTTP-Servern verwendet wird. Verwendungsszenarien: Stresstest-Tools für den Verkehrszugriff werden häufig verwendet, um die Leistung von Webservern zu bewerten und die Systemleistung bei gleichzeitigem Zugriff zu erkennen.

AB-Tool-Installation

sudo apt-get install apache2-utils #ubuntu系统
sudo yum install httpd-tools #Centos系统

Testen Sie die Anzahl gleichzeitiger Verbindungen zur Website

ab -c 10 -n 100 https://example.com/

Dadurch werden 10 gleichzeitige Verbindungen erstellt, die jeweils 100 Anfragen ausführen.

Testen Sie die Anfragegeschwindigkeit der Website

ab -n 1000 -c 100 https://example.com/

Dadurch werden 100 gleichzeitige Verbindungen erstellt und insgesamt 1.000 Anforderungen ausgeführt. Zu diesem Zeitpunkt können Sie die CPU und den Speicher durch Überwachung beobachten, um zunächst die gleichzeitige Tragfähigkeit der Plattform zu bewerten.

Das obige ist der detaillierte Inhalt vonHaben Sie diese Stresstest-Tools für Linux-Systeme verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:mryunwei.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen