成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何一條命令,榨干機器的所有內存?

系統 Linux
最近在驗證一些機器的內存分配規律的時候,學習到了一些技能,趁著周末有時候寫點東西,跟大家分享一下。

 [[438184]]

最近在驗證一些機器的內存分配規律的時候,學習到了一些技能,趁著周末有時候寫點東西,跟大家分享一下。

大家可能有遇到類似的場景,想要對機器進行壓測模擬 OOM 的場景,但是無奈機器的規格實在太高,若用代碼去實現,大家可以想象一下如何實現?個人感覺還是有點麻煩的。

那么有沒有好有的辦法,不用寫代碼,用幾個簡單的命令直接就可以向機器申請內存呢?或者更極端點,直接把機器的內存給榨干了。。

若你經常使用 linux,你會發現 df -Th 后,一定會有 tmpfs 類型的文件系統掛載在 /dev/shm 下面,雖然你大概率不會關注到它。 

  1. $ df -Th  
  2. Filesystem     Type      Size  Used Avail Use% Mounted on  
  3. devtmpfs       devtmpfs  910M     0  910M   0% /dev  
  4. tmpfs          tmpfs     919M     0  919M   0% /dev/shm  
  5. tmpfs          tmpfs     919M  896K  918M   1% /run  
  6. tmpfs          tmpfs     919M     0  919M   0% /sys/fs/cgroup  
  7. /dev/vda1      ext4       40G   11G   27G  28% /  
  8. tmpfs          tmpfs     184M     0  184M   0% /run/user/0 

而這個 tmpfs 就是明哥今天要介紹的主角。

tmpfs,顧名思義,是臨時文件系統,是一種基于內存的文件系統。

它和虛擬磁盤 ramdisk比較類似像,但不完全相同,和ramdisk一樣,tmpfs可以使用RAM,但它也可以使用swap分區來存儲,而且傳統的ramdisk是個塊設備,要用mkfs來格式化它,才能真正地使用它;而tmpfs是一個文件系統,并不是塊設備,只是安裝它,就可以使用了。tmpfs是最好的基于RAM的文件系統。

這意味著,你往掛載了 tmpfs 的目錄下寫入的文件,都會直接寫入內存中。

假如你想占用機器 10G 的內存,那我只要先創建一個臨時目錄 /tmp/memory ,并指定 tmpfs 的文件系統類型及大小 10240M 掛載到該目錄下。 

  1. $ mount -t tmpfs -o size=10240M tmpfs /tmp/memory 

接著咱使用 dd 命令,往該目錄下寫入多少內容,就會占用多少內存,由于我們的目的是占用內存,因此 if 直接使用 /dev/zero 

  1. $ dd if=/dev/zero of=/tmp/memory/block 

當 dd 寫入完成后,你再使用 free 去查看可用內存,會發現剩余的內存可分配的內存少了 10G。

如果你想用完機器的所有內存,完全可以在 mount 的時候,指定 size 為機器的內存大小,但你要清楚你在做什么,否則執行完 dd ,你的機器可能就掛了。

利用上面這個方法,其實還可以做更多的事情,比如你在機器你有兩個 NUMA Node ,但你只想占用 NUMA Node 0 的內存,那就可以指定 NUMA Node 0 的內存,怎么辦呢?

首先利用 lscpu 找到 NUMA Node 0 上的所有 cpu 核 

  1. node0_cpus=$(lscpu | grep "NUMA node0" | awk '{print $NF}') 

然后使用 taskset 工具加 -c 參數來指定對應的 cpu 核來執行創建 tmpfs 目錄和 dd  的過程 

  1. $ cat > /root/mem_alloc.sh <<EOF  
  2. #!/bin/bash  
  3. tmpdir=`mktemp`  
  4. mount -t tmpfs -o size=1024M tmpfs ${tmpdir}  
  5. dd if=/dev/zero of=${tmpdir}/block  
  6. EOF  
  7. $ taskset -c "${node0_cpus}" sh /root/mem_alloc.sh  

執行完成后,如果你所占用的內存,沒有超過 NUMA Node 0 的本地內存,那么你使用 numactl 就會發現上面命令都只占用了 NUMA Node0 的內存。

這么簡單,你學會了嗎? 

 

責任編輯:龐桂玉 來源: 良許Linux
相關推薦

2009-12-22 13:21:21

服務器

2021-09-15 06:21:36

Update語句數據庫

2019-03-28 10:09:49

內存CPU硬盤

2011-03-21 17:19:12

LAMPUbuntu

2020-05-26 09:08:23

命令循環Linux

2024-06-12 13:36:24

2011-04-28 15:25:35

噴墨打印機墨盒

2021-03-12 15:08:23

服務器性能優化

2024-02-20 13:43:12

2025-05-20 00:00:00

2022-01-01 18:26:21

nginx

2025-05-12 08:27:25

2020-02-19 19:15:27

UbuntuLinux媒體編解碼器

2024-02-01 18:07:37

2022-02-11 14:43:53

SQL語句C/S架構

2009-07-21 09:32:16

虛擬化投資回報

2025-06-06 08:55:00

模型訓練算力

2015-07-28 11:06:28

日志記錄Linux命令

2024-04-19 07:31:58

MySQL數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品久久久久中文字幕欢迎你 | 欧美中国少妇xxx性高请视频 | 欧美日韩国产一区二区 | 欧美激情综合 | 大伊人久久 | 亚洲电影一区二区三区 | 蜜桃综合在线 | 日日摸夜夜添夜夜添特色大片 | 黄色电影在线免费观看 | 亚洲精品乱码久久久久久9色 | 日韩在线视频一区二区三区 | 中文一区二区 | 久草成人网 | 欧美黑人一级爽快片淫片高清 | 一级免费毛片 | 国产日韩欧美一区二区 | 日韩一二区在线观看 | 欧美在线a | 美女日批免费视频 | 日韩中文字幕第一页 | 久久久久久久97 | 在线视频一区二区三区 | 青青草免费在线视频 | 国产人久久人人人人爽 | 日本免费一区二区三区四区 | 色综合久久88色综合天天 | 成人一区二区三区在线 | 另类专区成人 | 久久久www成人免费精品 | 国产精品综合久久 | 神马久久av | 久久国产精品一区二区三区 | 亚洲国产精品一区二区三区 | 粉嫩一区二区三区性色av | 亚洲欧美一区二区三区国产精品 | 精品久久久久久亚洲精品 | 日韩av一区在线观看 | 亚洲精品91 | 狠狠艹 | 一区二区三区在线观看免费视频 | 欧美日高清视频 |