淄博網(wǎng)站seo公司泉州seo按天計費(fèi)
本文目錄
- 1. 序
- 2.鴻蒙與歐拉的概念
- 微內(nèi)核
- LiteOS
- 鴻蒙微內(nèi)核
- POSIX標(biāo)準(zhǔn)
- 3.實(shí)習(xí)干了些什么
- 身份鑒別
- 訪問控制
- 惡意代碼防范
- 安全審計
- 入侵防范
- 性能壓測
- 檢查系統(tǒng)版本
- 網(wǎng)絡(luò)測試
- 常見的linux測試命令
1. 序
之前在某國企實(shí)習(xí)的時候,有幸參與了鴻蒙系統(tǒng)、鴻蒙歐拉的項(xiàng)目,主要是做鴻蒙系統(tǒng)結(jié)合國家主要產(chǎn)業(yè)的設(shè)備進(jìn)行工作測試,這里不涉及太多詳細(xì)情況,主要是總結(jié)自己對鴻蒙操作系統(tǒng)的知識梳理和實(shí)習(xí)時的一些收獲。
2.鴻蒙與歐拉的概念
OpenHarmony
是基于微內(nèi)核、面向全場景的分布式操作系統(tǒng)
。并不是安卓系統(tǒng)修改而來的,與安卓、IOS是不一樣的操作系統(tǒng)。
其內(nèi)核可以認(rèn)為是由 Linux內(nèi)核、LiteOS、鴻蒙微內(nèi)核
三個部分構(gòu)成的多內(nèi)核操作系統(tǒng)。 因?yàn)樵缙诘难邪l(fā)是參考了Linux內(nèi)核并以此為底層進(jìn)行內(nèi)核設(shè)計開發(fā),所以兼容Linux應(yīng)用程序(Debian系列的Linux內(nèi)核
,其后綴為.deb
)。
鴻蒙微內(nèi)核應(yīng)該是參考Minix3
開發(fā)的( Minix3屬于精簡的類Unix系統(tǒng)
,使用的就是微內(nèi)核
)。
因?yàn)槭嵌鄡?nèi)核的,所以OpenHarmony
引入了內(nèi)核抽象層(Kernel Abstract Layer, KAL
),通過屏蔽不同內(nèi)核之間的差異
,向上層提供統(tǒng)一的內(nèi)核能力,包括進(jìn)程/線程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管理等。這種設(shè)計使得系統(tǒng)能夠兼容 Linux 的核心功能和命令。
手機(jī)上使用的 鴻蒙OS系統(tǒng)(Harmony OS) = AOSP + EMUI 界面+ HMS服務(wù) +鴻蒙API接口
。
OpenEuler 是一個開源的 Linux 操作系統(tǒng)(Red Hat系列的Linux內(nèi)核
,其包后綴是.rpm
,最開始是基于 Red Hat Enterprise Linux(RHEL)的 CentOS 分支進(jìn)行定制
),由華為發(fā)起并貢獻(xiàn)核心代碼,旨在為數(shù)據(jù)中心、云計算、邊緣計算等場景提供高性能、高可靠性和高安全性的操作系統(tǒng)。它由開放原子開源基金會
孵化,目標(biāo)是構(gòu)建一個開放、創(chuàng)新的操作系統(tǒng)生態(tài)。
微內(nèi)核
那么微內(nèi)核是什么呢?
微內(nèi)核(Microkernel)
是一種操作系統(tǒng)內(nèi)核架構(gòu),其核心思想是將操作系統(tǒng)的核心功能最小化,僅保留最基本的服務(wù),如進(jìn)程管理、線程調(diào)度、內(nèi)存管理、進(jìn)程間通信(IPC
)等。其他功能,如文件系統(tǒng)、設(shè)備驅(qū)動、網(wǎng)絡(luò)協(xié)議等,則作為用戶態(tài)服務(wù)
運(yùn)行。
LiteOS
LiteOS 是華為開發(fā)的一款輕量級實(shí)時操作系統(tǒng)(RTOS),專為物聯(lián)網(wǎng)(IoT)設(shè)備和嵌入式系統(tǒng)
設(shè)計。
LiteOS 的內(nèi)核非常小巧,基礎(chǔ)內(nèi)核體積可以裁剪至不到 10KB,適合資源受限的嵌入式設(shè)備。
LiteOS 集成了多種物聯(lián)網(wǎng)通信協(xié)議
,如 MQTT、CoAP、LwM2M 等,方便設(shè)備與云端的互聯(lián)互通。
鴻蒙微內(nèi)核
鴻蒙微內(nèi)核則在 LiteOS 的基礎(chǔ)上進(jìn)行了增強(qiáng)和擴(kuò)展,繼承了其低功耗和高實(shí)時性特點(diǎn),同時通過微內(nèi)核架構(gòu)和分布式能力,支持更廣泛的設(shè)備和應(yīng)用場景。
鴻蒙微內(nèi)核通過模塊化設(shè)計
,將核心功能精簡至最小,提供高效的進(jìn)程間通信(IPC)
和資源管理能力
。
另一個特點(diǎn)是采用形式化驗(yàn)證方法,增強(qiáng)系統(tǒng)安全性和可信執(zhí)行環(huán)境(TEE)
,降低受攻擊幾率。
POSIX標(biāo)準(zhǔn)
POSIX就是操作系統(tǒng)接口規(guī)范
,POSIX(Portable Operating System Interface for Unix),許多現(xiàn)代操作系統(tǒng)(如 Linux、macOS、FreeBSD
等)都實(shí)現(xiàn)了 POSIX 標(biāo)準(zhǔn),以提高兼容性和可移植性。
POSIX 包括的內(nèi)容
系統(tǒng)接口:定義了操作系統(tǒng)內(nèi)核提供的功能,如進(jìn)程管理、文件系統(tǒng)操作、信號處理、線程管理等。
Shell 和工具:標(biāo)準(zhǔn)化了命令行工具和腳本語言(如 sh、awk、sed 等),確保這些工具在不同系統(tǒng)上具有一致的行為。
實(shí)時擴(kuò)展:支持實(shí)時操作系統(tǒng)(RTOS)的特性,如實(shí)時線程調(diào)度、優(yōu)先級繼承等。
線程支持:定義了線程(pthread)的創(chuàng)建、同步和管理接口,支持多線程編程。
網(wǎng)絡(luò)接口:標(biāo)準(zhǔn)化了網(wǎng)絡(luò)編程接口,如套接字(socket)編程。
3.實(shí)習(xí)干了些什么
主要是對鴻蒙操作系統(tǒng)還有歐拉操作系統(tǒng)進(jìn)行一些操作系統(tǒng)方面的測試,功能、性能、安全等方面,這會進(jìn)行個總結(jié)。
身份鑒別
這個主要是對登錄的用戶進(jìn)行身份標(biāo)識和鑒別,身份標(biāo)識有唯一性,身份鑒別信息具有復(fù)雜度要求,需要定期更換。
- 查看當(dāng)前可登錄用戶,命令
cat /etc/passwd | grep bash
,如下圖所示。
cat /etc/passwd
的輸出(即 /etc/passwd
文件的內(nèi)容)會被傳遞給 grep bash
命令。|
是管道,grep
是一個用于搜索文本內(nèi)容的命令,可以在文件或輸入流中查找匹配指定模式的行。
所以這個命令的作用是:從 /etc/passwd 文件中篩選出所有默認(rèn) Shell 為 bash 的用戶信息
。
Shell是操作系統(tǒng)中的一個用戶界面
,它允許用戶與操作系統(tǒng)進(jìn)行交互。Shell 提供了一個命令行界面(CLI),用戶可以通過輸入命令來執(zhí)行各種操作,例如運(yùn)行程序、管理文件和目錄、配置系統(tǒng)等。
大多數(shù) Linux 用戶使用 Bash 作為默認(rèn) Shell,因此篩選這些用戶可以快速找到使用標(biāo)準(zhǔn) Shell 的賬戶。某些特定場景下,系統(tǒng)管理員可能需要找到所有使用 Bash 的用戶,以便進(jìn)行腳本管理、安全審計
或其他系統(tǒng)維護(hù)任務(wù)。
輸入命令cat /etc/passwd
可以看到如下的輸出。每行對應(yīng)一個用戶,字段之間用冒號(:)分隔。字段的含義如下:
用戶名:用戶的登錄名。
密碼:現(xiàn)代系統(tǒng)中通常是一個占位符(如 x),密碼信息存儲在 /etc/shadow 文件中。
用戶 ID(UID):用戶的唯一標(biāo)識符。
組 ID(GID):用戶所屬的用戶組 ID。
用戶信息:用戶的全名或其他描述信息。
主目錄:用戶的家目錄路徑。
默認(rèn) Shell:用戶登錄時使用的 Shell。
root@demo:~# cat /etc/passwd | grep bash
root:x:0:0:root:/root:/bin/bash
demo:x:1000:1000:demo:/home/demo:/bin/bash
root@demo:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
- 查看是否有空口令用戶:
awk -F : '($2=="")' /etc/shadow
awk
是一個功能強(qiáng)大的文本處理工具,常用于解析和處理結(jié)構(gòu)化的文本文件。它可以根據(jù)指定的分隔符將每行文本分割成多個字段,并對這些字段進(jìn)行操作。
-F
選項(xiàng)用于指定字段分隔符。在這個命令中,字段分隔符是冒號(:)。
/etc/shadow
文件的每一行都包含用戶密碼信息,字段之間用冒號分隔。
這是 awk 的模式匹配部分,用于指定需要處理的行。$2 表示每行的第二個字段,==“” 表示檢查該字段是否為空。
比如輸入命令后會得到:
root:$6$abc123$...:18385:0:99999:7:::
daemon:*:18385:0:99999:7:::
nobody:*:18385:0:99999:7:::
testuser::18385:0:99999:7:::
- 查看身份標(biāo)識唯一性:
cat /etc/passwd | awk -F : '{print $1,$3}' | sort -t ' ' -k 2n | uniq -f1 -D
這個命令的作用是檢查系統(tǒng)中是否存在具有相同用戶 ID(UID)的用戶,即檢查用戶身份標(biāo)識(UID)的唯一性。如果存在多個用戶共享同一個 UID,則表示身份標(biāo)識不唯一,這可能是一個配置錯誤或安全問題。
剛剛我們提到過,/etc/passwd
是一個包含系統(tǒng)用戶信息的文件,每一行代表一個用戶,字段之間用冒號(:)分隔。其格式如下:
用戶名:密碼占位符:用戶ID(UID):組ID(GID):用戶描述:用戶主目錄:默認(rèn)Shell
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
user1:x:1000:1000:User One:/home/user1:/bin/bash
user2:x:1001:1001:User Two:/home/user2:/bin/bash
{print $1, $3}
:表示打印每行的第一個字段(用戶名)和第三個字段(用戶 ID,UID)。
root 0
daemon 1
user1 1000
user2 1001
sort
是一個用于對文本行進(jìn)行排序的命令。-t ' '
:指定字段分隔符為空格。-k 2n
:表示按照第二列(UID)進(jìn)行數(shù)值排序。
uniq
是一個用于檢查和刪除重復(fù)行的命令。-f1
:表示跳過每行的前一列(即用戶名列),只比較第二列(UID)。-D
:表示只顯示重復(fù)的行。
- 查看密碼復(fù)雜度策略及相關(guān)安全策略:
cat /etc/login.defs
/etc/login.defs
是系統(tǒng)配置文件的路徑,用于存儲登錄和密碼相關(guān)的全局設(shè)置。
比如:
PASS_MIN_DAYS
:指定用戶可以更改密碼的最小天數(shù)。例如,如果設(shè)置為 7,用戶在 7 天內(nèi)不能更改密碼。
PASS_MAX_DAYS
:指定用戶密碼的有效期。例如,如果設(shè)置為 90,用戶必須每 90 天更改一次密碼。
PASS_WARN_AGE
:指定在密碼過期前多少天開始提醒用戶更改密碼。例如,如果設(shè)置為 7,系統(tǒng)會在密碼過期前 7 天開始提醒用戶。
LOGIN_RETRIES
:定義用戶登錄失敗的最大嘗試次數(shù)。
LOGIN_TIMEOUT
:定義登錄超時時間(秒)。
CHFN_RESTRICT
:限制用戶通過 chfn 命令修改個人信息。
UID_MIN
,普通用戶 UID(用戶 ID)的最小值,通常為1000。
UID_MAX
,通常是 60000 或 65533。
UMASK
,文件權(quán)限相關(guān),新文件和目錄的默認(rèn)權(quán)限掩碼,通常是 022。設(shè)置新創(chuàng)建文件和目錄的默認(rèn)權(quán)限。例如,022 表示新文件的默認(rèn)權(quán)限為 644(rw-r–r–),新目錄的默認(rèn)權(quán)限為 755(rwxr-xr-x)。
ENCRYPT_METHOD
,密碼加密方法,默認(rèn)值:通常是 SHA512 或 MD5。
設(shè)置密碼最小長度(PASS_MIN_LEN
)。
- 是否開啟sshd服務(wù):
ps -ef | grep ssh
或者service sshd status
檢查系統(tǒng)中是否運(yùn)行了 sshd 服務(wù)(SSH 守護(hù)進(jìn)程)。sshd 是 SSH(Secure Shell)服務(wù)的守護(hù)進(jìn)程,用于提供安全的遠(yuǎn)程登錄和文件傳輸功能。
比如下面圖中的,sshd: root@pts/0
表示這是一個 sshd 子進(jìn)程,用于處理 root 用戶通過 SSH 連接到終端 pts/0 的會話。
/usr/lib/openssh/sftp-serve
r表示這是一個 SFTP 服務(wù)器進(jìn)程,用于處理通過 SSH 的文件傳輸請求。
- 檢查telnet是否關(guān)閉:systemctl status telnet.socket`
如果服務(wù)未運(yùn)行,輸出可能顯示:
也可以通過命令telnet localhost 23
,使用 telnet 客戶端嘗試連接到本地主機(jī)的端口 23,確認(rèn)是否可以連接。
訪問控制
- 禁止用戶遠(yuǎn)程登錄:
cat /etc/ssh/sshd_config | grep PermitRootLogin
減少攻擊面:root 用戶擁有系統(tǒng)的所有權(quán)限,如果攻擊者通過遠(yuǎn)程登錄獲取了 root 權(quán)限,他們將能夠完全控制整個系統(tǒng),包括修改系統(tǒng)配置、安裝惡意軟件、竊取敏感數(shù)據(jù)等。禁止 root 遠(yuǎn)程登錄可以有效減少潛在的攻擊面。
防止暴力破解:root 是默認(rèn)的超級用戶,其用戶名是眾所周知的,因此很容易成為暴力破解攻擊的目標(biāo)。攻擊者可以嘗試使用常見的弱密碼或自動化工具來猜測 root 的密碼。禁止 root 遠(yuǎn)程登錄可以防止這種攻擊。
降低風(fēng)險:即使使用了強(qiáng)密碼,root 用戶的遠(yuǎn)程登錄仍然可能被中間人攻擊、密鑰泄露或其他安全漏洞所利用。禁止 root 遠(yuǎn)程登錄可以降低這些風(fēng)險。
最小權(quán)限原則 是一種安全策略,建議用戶和進(jìn)程僅擁有完成其任務(wù)所必需的最小權(quán)限。對于遠(yuǎn)程登錄,建議使用普通用戶賬戶登錄,然后通過 sudo 或 su 命令獲取更高的權(quán)限。這樣可以限制用戶的操作范圍,減少誤操作或惡意行為對系統(tǒng)的影響。
即使當(dāng)用戶通過 sudo 執(zhí)行命令時,sudo 會記錄執(zhí)行的用戶、執(zhí)行的命令以及執(zhí)行時間等信息。這些日志通常保存在 /var/log/auth.log
或 /var/log/secure
文件中。通過這些日志,管理員可以清楚地知道是誰執(zhí)行了哪些需要 root 權(quán)限的操作。如果多個管理員直接以 root 用戶登錄,很難區(qū)分是誰執(zhí)行了特定的操作,這給審計和責(zé)任追蹤帶來了困難。
可以通過使用 visudo
命令編輯 /etc/sudoers
文件:
# 允許用戶 user1 執(zhí)行所有命令
user1 ALL=(ALL) ALL# 允許用戶組 admin 執(zhí)行所有命令
%admin ALL=(ALL) ALL# 允許用戶 user2 只能執(zhí)行特定命令
user2 ALL=(ALL) /usr/bin/apt-get, /usr/bin/reboot
- 查看權(quán)限是否合理,批量檢查所有用戶的 sudo 權(quán)限:
getent passwd | cut -d: -f1 | xargs -n 1 sudo -l -U
惡意代碼防范
- 查看定時任務(wù)配置規(guī)則:
cat /etc/crontab
Linux 系統(tǒng)中 /etc/crontab 文件的內(nèi)容,它定義了系統(tǒng)級的定時任務(wù)(cron jobs)
。/etc/crontab 文件用于配置系統(tǒng)范圍的定時任務(wù),這些任務(wù)通常由系統(tǒng)服務(wù)(如 cron 守護(hù)進(jìn)程)
自動執(zhí)行。
定義了系統(tǒng)級的定時任務(wù),也就是定期執(zhí)行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly
目錄中的腳本。這些任務(wù)通常用于系統(tǒng)維護(hù),例如清理臨時文件、更新系統(tǒng)日志、備份數(shù)據(jù)
等。
- 檢查定時任務(wù)是否運(yùn)行:
service cron statusb
首先,輸出顯示 cron.service
是一個名為“Regular background program processing daemon
”(定期后臺程序處理守護(hù)進(jìn)程
)的服務(wù)。它用于管理定時任務(wù)(cron 任務(wù)
),這些任務(wù)會在指定的時間自動運(yùn)行。
服務(wù)的活動狀態(tài)為“active (running)
”,表明 cron 服務(wù)正在運(yùn)行。它自 2025 年 3 月 3 日星期一 06:49:53 UTC 開始運(yùn)行,到目前為止已經(jīng)運(yùn)行了 5 小時 48 分鐘。
主進(jìn)程 ID(PID)為 864,表示 cron 服務(wù)的主進(jìn)程
正在運(yùn)行,并且當(dāng)前只有一個任務(wù)(Tasks: 1)。系統(tǒng)為該服務(wù)分配的內(nèi)存為 2.3M,它屬于 system.slice/cron.service 控制組
。
安全審計
- 檢查安全審計的守護(hù)進(jìn)程是否正常
:
ps -ef | grep auditd 或者systemctl status auditd
[kauditd]
表示這是一個內(nèi)核線程,名為 kauditd,用于處理審計事件。kauditd 是 Linux 審計系統(tǒng)的一部分,負(fù)責(zé)將審計事件寫入日志。
- audit審計規(guī)則配置:
cat /etc/audit/audit.rules
刪除所有現(xiàn)有的審計規(guī)則(-D)。
設(shè)置審計事件隊(duì)列大小為 8192 條目(-b 8192)。
設(shè)置失敗處理方式為記錄失敗事件(-f 1)。
設(shè)置等待隊(duì)列的最大等待時間為 0 毫秒(–backlog_wait_time 0)。
- NTP時鐘服務(wù)是否開啟:
systemctl status ntp
檢查 NTP(Network Time Protocol)時鐘服務(wù)是否正在運(yùn)行。
NTP 的核心功能是同步系統(tǒng)時鐘,確保計算機(jī)的時間與外部時間源(如時間服務(wù)器)保持一致。通過定期與時間服務(wù)器通信,NTP 可以校正系統(tǒng)時鐘的偏差,從而避免因硬件時鐘漂移導(dǎo)致的時間不準(zhǔn)確。
在系統(tǒng)管理和安全審計中,準(zhǔn)確的時間戳是必不可少的。NTP 可以確保日志文件、事件記錄和其他時間敏感信息的時間戳是準(zhǔn)確的,從而便于故障排查和安全分析。
入侵防范
- 查看開放端口:
ss -tuln
ss 是 netstat 的現(xiàn)代替代工具,功能更強(qiáng)大,性能更好。
-t:顯示 TCP 端口。
-u:顯示 UDP 端口。
-l:顯示處于監(jiān)聽狀態(tài)的端口。
-n:以數(shù)字形式顯示地址和端口。
- State(狀態(tài)):
LISTEN:端口正在監(jiān)聽,等待連接。
UNCONN:UDP 套接字未連接,UDP 是無連接的協(xié)議,所以通常顯示為 UNCONN。
- Recv-Q(接收隊(duì)列):
顯示接收隊(duì)列中的字節(jié)數(shù)或數(shù)據(jù)報數(shù)。對于監(jiān)聽狀態(tài)的 TCP 端口,通常為 0,因?yàn)樗鼈冋诘却B接。
- Send-Q(發(fā)送隊(duì)列):
顯示發(fā)送隊(duì)列中的字節(jié)數(shù)或數(shù)據(jù)報數(shù)。對于監(jiān)聽狀態(tài)的端口,通常為 0。
- Local Address:Port(本地地址:端口):
顯示本地 IP 地址和端口號??梢允?IPv4 地址(如 127.0.0.1)、IPv6 地址(如 [::1]),或者是 0.0.0.0 和 [::] 表示監(jiān)聽所有 IPv4 和 IPv6 地址。
如果地址包含 % 符號,后面跟著的是網(wǎng)絡(luò)接口名稱(如 %lo 表示本地回環(huán)接口,%ens33 表示名為 ens33 的網(wǎng)絡(luò)接口)。
- Peer Address:Port(對端地址:端口):
對于 TCP 監(jiān)聽端口,通常顯示為 0.0.0.0:* 或 [::]😗,表示接受任何對端地址和端口的連接。
對于 UDP 端口,通常為空,因?yàn)?UDP 是無連接的,沒有特定的對端地址。
- Process(進(jìn)程):
這一列通常顯示監(jiān)聽端口的進(jìn)程信息。但在 ss 命令的輸出中,這一列默認(rèn)是不顯示的。如果需要顯示進(jìn)程信息,可以使用 ss -tunp
命令。
在圖中,我們可以看到多個 UDP 和 TCP 端口的狀態(tài)。例如,端口 53 是用于 DNS 的,它在 IPv4 的本地回環(huán)地址 127.0.0.53 和 IPv6 的本地回環(huán)地址 [::1]:53 上監(jiān)聽。端口 123 是用于 NTP 的,它在多個 IPv6 鏈接本地地址上監(jiān)聽。端口 8500、22、3306 和 6379 分別是用于一些常見服務(wù)的,如 Docker 的 Swarm 模式、SSH、MySQL 數(shù)據(jù)庫和 Redis。
性能壓測
通過cat /proc/loadavg
查看系統(tǒng)負(fù)載的平均值,其前三列分別表示最近1分鐘、5分鐘及15分的平均負(fù)載。 反映了當(dāng)前系統(tǒng)的繁忙情況。當(dāng)平均負(fù)載高于 CPU 數(shù)量 70% 的時候,你就應(yīng)該分析排查負(fù)載高的問題了。
平均負(fù)載是指單位時間內(nèi),處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的進(jìn)程數(shù)。它不僅包括了正在使用 CPU 的進(jìn)程,還包括等待 CPU 和等待 I/O 的進(jìn)程。
CPU 使用率
,是單位時間內(nèi) CPU 繁忙情況的統(tǒng)計,跟平均負(fù)載并不一定完全對應(yīng)。
比如:CPU 密集型進(jìn)程
,使用大量 CPU 會導(dǎo)致平均負(fù)載升高,此時這兩者是一致的;
I/O 密集型進(jìn)程
,等待 I/O 也會導(dǎo)致平均負(fù)載升高,但 CPU 使用 率不一定很高。
通過命令stress --vm 2 --vm-bytes 300M --vm-keep
進(jìn)行系統(tǒng)進(jìn)行壓力測試和性能評估??梢阅M高負(fù)載情況,幫助評估系統(tǒng)在極端條件下的表現(xiàn)。
--vm 2
:這個選項(xiàng)指定創(chuàng)建 2 個虛擬內(nèi)存(VM)工作者(worker),每個工作者會消耗系統(tǒng)資源來模擬負(fù)載。
--vm-bytes 300M
:這個選項(xiàng)指定每個虛擬內(nèi)存工作者分配 300 MB(兆字節(jié))的內(nèi)存。由于有 2 個虛擬內(nèi)存工作者,總共會分配 600 MB 的內(nèi)存。
--vm-kee
p:這個選項(xiàng)指示 stress 在測試結(jié)束后保留分配的內(nèi)存,而不是釋放它。通常,stress 在測試完成后會嘗試清理和釋放資源,但 --vm-keep 選項(xiàng)會阻止這一行為,使內(nèi)存保持被占用狀態(tài)。
在執(zhí)行壓力測試時監(jiān)控系統(tǒng)狀態(tài),如 CPU 使用率、內(nèi)存使用情況、磁盤 I/O 等,以便及時了解系統(tǒng)在高負(fù)載下的表現(xiàn)。
檢查系統(tǒng)版本
因?yàn)轼櫭蓺W拉版本比較多,需要核對版本,這個直接輸入uname -a
命令即可。
網(wǎng)絡(luò)測試
使用經(jīng)典的iperf工具進(jìn)行tcp和udp測試。
服務(wù)端通過命令iperf -u -s
開啟udp服務(wù)。
然后客戶端可以運(yùn)行下面的命令:
iperf -u -c 192.168.1.1 -b 100M -t 60
表示udp模式下,以100Mbps數(shù)據(jù)發(fā)送速率,測試60s。
iperf -u -c 192.168.1.1 -b 5M -P 30 -t 60
客戶端向服務(wù)器端發(fā)起30個連接線程,以5Mbps為數(shù)據(jù)發(fā)送速率。
iperf -u -c 192.168.1.1 -b 100M -d -t 60
以100M為數(shù)據(jù)發(fā)送速率,進(jìn)行上下行帶寬測試。
對應(yīng)的TCP模式也是一樣的。
服務(wù)端通過命令iperf -s
開啟tcp服務(wù)。
客戶端運(yùn)行命令iperf -c 192.168 .1.1 -t 60
tcp模式下,進(jìn)行上傳帶寬測試,測試時間為60s等。
客戶端運(yùn)行命令iperf -c 192.168 .1.1 -P 30 -t 60
tcp模式下,發(fā)起30個線程連接測試60s。
常見的linux測試命令
top
實(shí)時顯示系統(tǒng)中各個進(jìn)程的資源占用情況,包括CPU、內(nèi)存、進(jìn)程ID等信息。
htop
功能類似于 top,但提供了更豐富的交互式界面,支持顏色顯示和更多的排序選項(xiàng)。
df -h
顯示文件系統(tǒng)的磁盤空間使用情況,-h 參數(shù)以易讀格式的顯示。
ifconfig 或 ip addr
顯示網(wǎng)絡(luò)接口的配置信息,包括IP地址、子網(wǎng)掩碼等。
netstat -tuln
顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計等信息。-tuln 參數(shù)表示顯示TCP、UDP監(jiān)聽端口。
iostat
監(jiān)控系統(tǒng)輸入輸出設(shè)備和CPU的使用情況。
ps aux
顯示系統(tǒng)中所有進(jìn)程的詳細(xì)信息,包括進(jìn)程ID、用戶、CPU和內(nèi)存使用率等。
uptime
顯示系統(tǒng)的運(yùn)行時間、當(dāng)前時間、負(fù)載平均值等。
free -h
顯示系統(tǒng)的總內(nèi)存、已用內(nèi)存、空閑內(nèi)存和交換空間(swap)的使用情況。