मेरे पास 10Gbit ईथरनेट से जुड़ी दो मशीनें हैं। बता दें कि इनमें से एक एनएफएस सर्वर है और दूसरा एनएफएस क्लाइंट होगा।
टीसीपी पर नेटवर्क की गति परीक्षण iperf
~ दोनों दिशाओं में ~ 9.8 Gbit / s थ्रूपुट दिखाता है, इसलिए नेटवर्क ठीक है।
NFS सर्वर के डिस्क प्रदर्शन का परीक्षण:
dd if=/dev/zero of=/mnt/test/rnd2 count=1000000
परिणाम ~ 150 एमबीटी / एस है, इसलिए डिस्क लेखन के लिए ठीक काम करती है।
सर्वर का /etc/exports
है:
/mnt/test 192.168.1.0/24(rw,no_root_squash,insecure,sync,no_subtree_check)
ग्राहक /mnt/test
निम्नलिखित विकल्पों के साथ यह साझा करने के लिए स्थानीय है :
node02:~ # mount | grep nfs
192.168.1.101:/mnt/test on /mnt/test type nfs4 (rw,relatime,sync,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.102,local_lock=none,addr=192.168.1.101)
यदि मैं एनएफएस शेयर से क्लाइंट मशीन पर एक बड़ी फ़ाइल (~ 5 जीबी) डाउनलोड करने का प्रयास करता हूं, तो मुझे ~ 130-140 एमबीटी / एस का प्रदर्शन मिलता है जो सर्वर के स्थानीय डिस्क प्रदर्शन के करीब है, इसलिए यह संतोषजनक है।
लेकिन जब मैं NFS शेयर में एक बड़ी फ़ाइल अपलोड करने की कोशिश करता हूं, तो अपलोड ~ 1.5 Mbytes / s से शुरू होता है, धीरे-धीरे 18-20 Mbytes / s तक बढ़ जाता है और बढ़ना बंद हो जाता है। कभी-कभी अपलोड शुरू होने से पहले कुछ मिनट के लिए शेयर "हैंग" हो जाता है, अर्थात मेजबानों के बीच ट्रैफ़िक शून्य के करीब हो जाता है और यदि मैं निष्पादित ls /mnt/test
करता हूं , तो यह एक या दो मिनट के दौरान वापस नहीं आता है। फिर ls
कमांड रिटर्न और अपलोड शुरू होता है यह प्रारंभिक 1.5Mbit / s गति है।
जब अपलोड की गति अधिकतम हो जाती है (18-20 Mbytes / s), मैं दौड़ता हूं iptraf-ng
और यह नेटवर्क इंटरफेस पर ~ 190 Mbit / s ट्रैफिक दिखाता है, इसलिए नेटवर्क यहां अड़चन नहीं है, साथ ही सर्वर की HDD भी है।
मैंने क्या कोशिश की:
1.
तीसरे होस्ट पर एक एनएफएस सर्वर सेट करें जो केवल 100Mbit ईथरनेट एनआईसी के साथ जुड़ा हुआ था। परिणाम अनुरूप हैं: DL अच्छा प्रदर्शन और लगभग पूर्ण 100Mbit नेटवर्क उपयोग दिखाता है, अपलोड प्रति सेकंड सैकड़ों किलोबाइट से अधिक तेजी से प्रदर्शन नहीं करता है, जिससे नेटवर्क उपयोग बहुत कम हो जाता है (2.5 Mbit / s तदनुसार iptraf-ng
)।
2. मैंने कुछ एनएफएस मापदंडों को ट्यून करने की कोशिश की:
sync
याasync
noatime
नहीं
hard
rsize
औरwsize
मेरे उदाहरणों में अधिकतम हैं, इसलिए मैंने उन्हें कई चरणों में घटाकर 8192 करने की कोशिश की
3. मैंने क्लाइंट और सर्वर मशीनों को स्विच करने की कोशिश की (पूर्व क्लाइंट पर एनएफएस सर्वर स्थापित करें और इसके विपरीत)। इसके अलावा, एक ही कॉन्फ़िगरेशन के साथ छह और सर्वर हैं, इसलिए मैंने उन्हें विभिन्न रूपों में एक-दूसरे को माउंट करने की कोशिश की। एक ही परिणाम।
4. MTU = 9000, MTU = 9000 और 802.3ad लिंक एकत्रीकरण, MTU = 1500 के साथ लिंक एकत्रीकरण।
5. sysctl ट्यूनिंग:
node01:~ # cat /etc/sysctl.conf
net.core.wmem_max=16777216
net.core.rmem_max=16777216
net.ipv4.tcp_rmem= 10240 873800 16777216
net.ipv4.tcp_wmem= 10240 873800 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.core.netdev_max_backlog = 5000
एक ही परिणाम।
6. लोकलहोस्ट से माउंट:
node01:~ # cat /etc/exports
/mnt/test *(rw,no_root_squash,insecure,sync,no_subtree_check)
node01:~ # mount -t nfs -o sync localhost:/mnt/test /mnt/testmount/
और यहां मुझे एक ही परिणाम मिलता है: से डाउनलोड /mnt/testmount/
तेज़ है, अपलोड करना /mnt/testmount/
बहुत धीमा है, 22 एमबीटी / एस से अधिक तेज़ नहीं है और वास्तव में स्थानांतरण शुरू होने से पहले थोड़ी देरी है। क्या इसका मतलब यह है कि नेटवर्क स्टैक त्रुटिपूर्ण रूप से काम करता है और समस्या एनएफएस में है?
यह सब मदद नहीं करता था, परिणाम डिफ़ॉल्ट कॉन्फ़िगरेशन से काफी भिन्न नहीं थे। echo 3 > /proc/sys/vm/drop_caches
सभी परीक्षणों से पहले निष्पादित किया गया था।
सभी 3 मेजबानों पर सभी एनआईसीई का एमटीयू 1500 है, कोई भी गैर-मानक नेटवर्क ट्यूनिंग नहीं करता है। ईथरनेट स्विच डेल एमएक्सएल 10/40 जीबी है।
ओएस CentOS 7 है।
node01:/mnt/test # uname -a
Linux node01 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
मुझे कौन सी सेटिंग याद आ रही है? NFS को जल्दी और बिना लटके कैसे लिखें?
Operation not permitted
एनएफएस प्रक्रिया के लिए स्ट्रेस संलग्न करने का प्रयास करता हूं ।