日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

性能說明FAQ

本文介紹NAS SMB/NFS協議文件系統性能相關的常見問題及解決方案。

NAS的性能與存儲容量之間的關系是什么?

  • 通用型NAS

    單個文件系統的讀寫性能上限(峰值)與文件系統的當前使用容量線性相關且成正比例關系,即使用容量越大,吞吐性能上限(峰值)越高。更多信息,請參見通用型NAS

  • 極速型NAS

    單個文件系統的讀寫性能隨配置容量的增長呈階梯式增長。更多信息,請參見極速型NAS

NAS的性能與目錄大小之間的關系是什么

在執行目錄遍歷操作時,以下情況可能導致響應速度變慢:

  • 目錄正在被修改:例如,創建、刪除或重命名文件時,緩存可能頻繁失效。

  • 目錄體量過大:對大目錄執行目錄遍歷操作時,由于緩存淘汰導致響應非常慢。

解決方案:

  • 避免目錄體量過大,控制單目錄下文件數量小于1萬個。

  • 執行目錄遍歷操作時,不要頻繁對目錄進行修改。

  • 對于大目錄遍歷,若不需頻繁修改,可考慮使用NFS v3協議掛載并添加nordirplus參數,以提升效率,請您驗證后使用。

掛載參數對NAS性能有什么影響?

掛載參數對NAS性能有顯著的影響,以下是掛載參數對性能的具體影響:

  • rsize 和 wsize:

    • 影響:這兩個參數定義了客戶端與服務器之間數據交換的塊大小。較大的塊大小可以減少網絡請求的次數,進而提高吞吐量,特別是在處理大文件時。

    • 建議值:1048576(1 MB)。建議您盡可能使用最大值。較小的塊大小可能導致更多的網絡開銷,從而降低性能。

  • hard:

    • 影響:啟用該選項后,如果文件存儲NAS不可用,客戶端會不斷重試請求,直到文件系統恢復。這確保了數據的完整性和一致性。

    • 建議:啟用。該參數有助于避免數據丟失,但可能導致應用程序暫時掛起。因此,適用于對可用性要求較高的場景。

  • timeo:

    • 影響:這個參數定義了客戶端在重試之前的等待響應時間。設置過短的超時可能會導致頻繁請求重試,從而降低性能,尤其是在網絡不穩定的情況下。

    • 建議值:600(60秒)。以確保網絡有足夠的時間恢復,從而減少重試次數。

  • retrans:

    • 影響:該參數定義了NFS客戶端在請求失敗后重試的次數。更高的重試次數可以增加成功請求的可能性,但也可能導致延遲。

    • 建議值:2。平衡性能與數據可靠性。

  • noresvport:

    • 影響:啟用該選項后,網絡重連時將使用新的TCP端口,從而確保在網絡故障恢復期間不會中斷連接。以提高網絡的可靠性。

    • 建議:啟用。該參數保障網絡連接的穩定性。

重要
  • 不建議使用soft選項,有數據一致性風險。如果您要使用soft選項,相關風險需由您自行承擔。

  • 避免設置不同于默認值的任何其他掛載選項。如果更改讀或寫緩沖區大小或禁用屬性緩存,可能會導致性能下降。

云服務器ECS實例的帶寬對NAS性能有何限制?

吞吐量最大不會超過ECS內網帶寬,如果內網帶寬太小,則吞吐量會受到流量控制。

讀寫吞吐超過閾值會有什么影響?

如果您或應用程序發出的請求吞吐量超過閾值時,NAS會自動對該請求限速,進而導致延遲增高。

通用型NAS可以通過Truncate命令提升吞吐閾值。具體操作,請參見如何提升通用型NAS文件系統的讀寫吞吐閾值?

極速型NAS可以通過擴容文件系統提升吞吐閾值。具體操作,請參見極速型NAS擴容

關于通用型NAS文件系統和極速型NAS文件系統的吞吐閾值,請參見通用型NAS性能指標極速型NAS性能指標

如何提升通用型NAS文件系統的讀寫吞吐閾值?

通用型NAS文件系統的讀寫吞吐量隨文件系統的使用容量線性增長。文件系統讀寫吞吐與使用容量的關系,請參見通用型NAS產品規格

通過在文件系統寫入空洞文件或使用Truncate命令生成一個文件來增加文件系統使用容量,從而提升文件系統的讀寫吞吐量。同時,空洞文件和Truncate命令生成的文件在阿里云NAS上占用實際容量,按實際大小計費。更多信息,請參見通用型NAS計費

例如在容量型文件系統寫入1 TiB文件,其讀寫吞吐量可提升150 MB/s;在性能型文件系統寫入1 TiB文件,其讀寫吞吐量可提升600 MB/s。

  • Linux

    支持使用Truncate命令生成文件提升讀寫吞吐。

    sudo truncate --size=1TB /mnt/sparse_file.txt

    其中,/mnt為文件系統在計算節點上的掛載路徑。

  • Windows

    支持通過在文件系統寫入空洞文件提升讀寫吞吐。

    fsutil file createnew Z:\sparse_file.txt 1099511627776

    其中,Z:\為文件系統在計算節點上的掛載路徑。

如何解決Linux操作系統上訪問NAS性能不好?

  • 方案一:通過nconnect參數提升單臺ECS訪問NAS的吞吐

    nconnect參數是NFS客戶端Linux掛載選項,通過在客戶端和服務器之間建立更多的TCP傳輸連接來提高吞吐性能。經過測試,使用nconnect參數可以將單ECS訪問NAS的吞吐提升3倍~6倍,達到3 GB/s。

    適用場景

    ECS上多并發I/O讀寫(并發大于16)。

    前提條件

    Linux內核版本需5.3及以上版本。

    操作步驟

    mount命令中增加nconnect參數,建議nconnect=4,命令示例如下。

    sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,nconnect=4 
    重要

    nconnect提高的是單個ECS訪問NAS的吞吐能力,并不會提高NAS文件系統自身的吞吐閾值。對于單并發,小數據塊,延遲敏感型業務,開啟nconnect會引起延遲增加,不建議開啟。

  • 方案二:通過修改sunrpc.tcp_slot_table_entries提升單臺ECS訪問NAS的吞吐

    Linux kernelsunrpc決定了NFS單個鏈接內的通信slot數量。不同的Linux版本采用了不同的配置。slot配置過高可能引起延遲增加,配置過低會引起吞吐不足。當您需要大吞吐時,建議slot配置為128。需要較低延遲時,slot配置為16及以下。

    說明

    調整sunrpc.tcp_slot_table_entries的配置效果遠差于nconnect。建議5.3及以上內核操作系統使用nconnect參數進行調節。

    適用場景

    ECS上多并發I/O讀寫,且內核版本低于3.10。

    操作步驟

    請參見如何修改同時發起的NFS請求數量?

為什么使用Nginx寫日志到文件系統耗時很長?

  • 背景信息:

    Nginx日志相關的指令有兩條。log_format用來設置日志的格式,access_log用來指定日志文件的存放路徑、格式的名稱和緩存大小。

  • 問題描述:

    Nginx寫日志到文件系統耗時很長,寫入性能差。

  • 問題原因:

    access_log指令中的日志文件路徑包含變量,每次寫日志時都會重新打開文件,再寫入日志,然后關閉文件。NAS為了保證數據的可見性,會在關閉文件時將數據寫回服務端,性能消耗較大。

  • 解決方案:

    • 方案一:刪除access_log指令中的變量,使用固定路徑存儲日志文件。

    • 方案二:使用open_log_file_cache指令設置經常被使用的日志文件描述符緩存,提高包含變量的日志文件存放路徑的性能。具體配置,請參見open_log_file_cache

      建議配置:

      open_log_file_cache max=1000 inactive=1m valid=3m min_uses=2;

為什么SMB協議文件系統執行IO操作會延遲?

  • 問題描述:

    通過掛載點直接訪問SMB協議文件系統,在執行IO操作會有幾分鐘的等待時間。

  • 問題原因:

    • 安裝了NFS客戶端,實際業務不使用,產生等待時間。

    • 啟用了WebClient服務,導致Internet文件服務器登錄SMB協議文件系統失敗。

    • 注冊表配置項中包含了NFS權限Nfsnp,導致打開文件失敗。

  • 解決方案:

    1. 首次訪問SMB文件系統時,請ping掛載點,查看計算節點和文件系統連通性,以及時延是否在正常范圍。

      • 如果執行ping命令失敗,請檢查您的網絡設置,確保網絡連接正常。

      • 如果延時較長,請ping掛載IP。當ping IPping DNS延時小很多,判斷可能是DNS問題,請檢查您的DNS服務器配置。

    2. 如果已安裝NFS客戶端,且用不到NFS服務,請刪除NFS客戶端。

    3. 禁用WebClient服務。

    4. 查看注冊表配置項HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder,如果注冊值包含Nfsnp,請刪除Nfsnp,然后重啟實例。

說明
  • 您可以使用fio工具,查看性能指標是否異常。

    fio.exe --name=./iotest1 --direct=1 --rwmixread=0 --rw=write --bs=4K --numjobs=1 --thread --iodepth=128 --runtime=300 --group_reporting --size=5G --verify=md5 --randrepeat=0 --norandommap --refill_buffers --filename=\\<mount point dns>\myshare\testfio1
  • 建議您使用大數據塊進行IO讀寫操作,如果數據塊較小,會消耗更多的網絡資源。如果不能修改數據塊大小,可以通過構造BufferedOutputStream,將具有指定緩沖區大小的數據寫入。

為什么Windows server SMB協議IO操作會延遲?

  • 問題原因:

    Windows SMB客戶端默認不開啟large mtu選項,因此影響IO性能的提升。

  • 解決方案:

    您可以通過修改注冊表配置項來開啟large mtu選項,注冊表路徑:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters

    在該路徑下,增加DWORD類型的鍵,命名為DisableLargeMtu,設置其值為0,重啟后才能生效。

如何提升IIS訪問NAS的性能?

  • 問題原因:

    IIS采用NAS Share的方式訪問NAS,在訪問一個文件時,IIS后臺會多次訪問NAS。不同于訪問本地文件系統,每次訪問NAS至少要有一次網絡交互,雖然每次訪問的時長很短,但是多次訪問時長疊加可能會造成客戶端響應總時間較長。

  • 解決方案:

    1. 請您使用SMB重定向器組件,進行優化。具體操作,請參見SMB2 Client Redirector Caches Explained

      其中,注冊表路徑為HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters。請將如下三個配置項調至600及以上。

      • FileInfoCacheLifetime

      • FileNotFoundCacheLifetime

      • DirectoryCacheLifetime

      說明

      如果三個注冊表配置項都不存在:

      1. 請確認使用的是SMB文件系統。

      2. 確認Windows版本是否支持這三個注冊表項配置項。如果Windows版本支持而注冊表配置項不存在,請手動創建。具體操作,請參見Performance tuning for file servers

    2. 建議把IIS訪問頻繁的JS/CSS等網頁程序相關的內容存放在本地。

如果當前IIS讀寫性能無法滿足您的業務需求,請提交工單處理。

為什么執行ls命令時,有卡頓或者無響應?

  • 問題現象

    在執行目錄遍歷的操作中出現卡頓或無響應。例如,執行ls命令、包含通配符*?的操作、執行rm -rf命令及getdents系統調用等。

  • 原因分析

    • 執行目錄遍歷操作時,如果此目錄同時正在被修改(如創建、刪除、重命名文件),目錄遍歷會由于緩存頻繁失效而響應非常慢。

    • 對大目錄執行目錄遍歷操作時,目錄遍歷會由于緩存淘汰而響應非常慢。

  • 解決方案

    • 避免目錄體量過大,控制單目錄下文件數量小于1萬個。

    • 執行目錄遍歷操作時,不要頻繁對目錄進行修改。

    • 執行目錄遍歷操作時,如果目標目錄體量較大(包含大于1萬個文件),且不需要頻繁修改目錄,您可以通過NFSv3掛載,并添加nordirplus參數,該措施能在一定程度上提速,請您驗證后使用。更多信息,請參見掛載參數

如何提升Linux 5.4及以上版本內核的NFS順序讀取性能?

NFS read_ahead_kb參數定義了Linux內核在順序讀取操作期間要提前讀取或預取的數據大小(以KB為單位)。

對于5.4.* 之前的Linux內核版本,read_ahead_kb參數的值是通過NFS_MAX_READAHEAD乘以rsize(在掛載選項中設置的客戶端讀取數據大小)的值來設置的。從Linux內核版本5.4.*開始,NFS客戶端使用默認的read_ahead_kb128 KB。因此建議使用推薦的掛載選項時,read_ahead_kb參數的值增加到15 MB。

掛載文件系統后,可以使用以下命令重置read_ahead_kb參數值。其中,nas-mount-point請替換為掛載文件系統的本地路徑;read-ahead-kb請替換為所需的讀取或預取的數據大小(以KB為單位)。

device_number=$(stat -c '%d' nas-mount-point)
((major = ($device_number & 0xFFF00) >> 8))
((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00)))
sudo bash -c "echo read-ahead-kb > /sys/class/bdi/$major:$minor/read_ahead_kb"

以下命令以掛載文件系統的本地路徑為/mnt為例,將read_ahead_kb的讀取或預取數據大小設置為15 MB。

device_number=$(stat -c '%d' /mnt)
((major = ($device_number & 0xFFF00) >> 8))
((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00)))
sudo bash -c "echo 15000 > /sys/class/bdi/$major:$minor/read_ahead_kb"