Score:3

ประสิทธิภาพ openat ของ NFS ช้ามาก

ธง kz

ฉันได้ติดตั้งเซิร์ฟเวอร์ NFS บน Ubuntu 20.04 และไคลเอนต์ FreeIPA Ubuntu 20.04 พร้อมโฮมไดเร็กทอรีผู้ใช้ที่ให้บริการโดยเซิร์ฟเวอร์ NFS ประสิทธิภาพการทำงานช้ามากเมื่อเข้าถึงไฟล์ เมื่อฉันติดตามกระบวนการด้วยเวลาที่ใช้ใน syscalls ฉันพบว่า openat สามารถใช้เวลามากกว่า 1 วินาทีในบางครั้งสำหรับไฟล์ NFS! (ดูด้านล่าง).ไม่จำเป็นต้องพูดว่าการเข้าถึงไฟล์บนเซิร์ฟเวอร์ไม่มีปัญหาดังกล่าว openat เป็นการทำงานที่ช้าเพียงอย่างเดียว

ฉันได้แนบฮิสโตแกรมของเวลาที่ใช้ใน openat (ฉันตัดแต่งถังขยะด้านบนเพื่อให้มองเห็นหางได้) มีการเรียกใช้ openat มากกว่า 800 สายที่เสร็จสิ้นภายในเวลาต่ำกว่า 10mSec แต่ส่วนท้ายนั้นสร้างความแตกต่างของเวลาทั้งหมด และมีการโทรจำนวนมากที่ใช้เวลามากกว่า 100mSec ซึ่งไม่สมเหตุสมผล

ฉันสงสัยว่าอาจเกี่ยวข้องกับการอนุญาต Kerberos หรืออะไรทำนองนั้น แต่ฉันไม่รู้ว่าจะตรวจสอบปัญหานี้อย่างไร

ตัวเลือกใน /etc/exports:

/home *(rw,sec=krb5:krb5i:krb5p,async,no_subtree_check)

ติดตั้งบนไคลเอนต์:

เซิร์ฟเวอร์:/home/... บน /home/... พิมพ์ nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,ฮาร์ด,proto=tcp,timeo=600,retrans= 2,sec=krb5,clientaddr=xx.xx.xx.x1,local_lock=none,addr=xx.xx.xx.x2)

ความช่วยเหลือหรือเบาะแสใด ๆ ที่จะได้รับการชื่นชม

ยูวาล.

0.000064 : stat("/home/.../lib/python3.8/site-packages/pandas/core", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
0.000040 : stat("/home/.../lib/python3.8/site-packages/pandas/core/nanops.py", {st_mode=S_IFREG|0664, st_size=50002, ...}) = 0
0.000095 : stat("/home/.../lib/python3.8/site-packages/pandas/core/nanops.py", {st_mode=S_IFREG|0664, st_size=50002, ...}) = 0
0.664737 : openat(AT_FDCWD, "/home/.../lib/python3.8/site-packages/pandas/core/__pycache__/nanops.cpython-38.pyc", O_RDONLY|O_CLOEXEC) = 6
0.000122 : fstat(6, {st_mode=S_IFREG|0664, st_size=36431, ...}) = 0
0.000116 : ioctl(6, TCGETS, 0x7ffed1278d60) = -1 ENOTTY (ioctl ไม่เหมาะสมสำหรับอุปกรณ์)
0.000049 : lseek(6, 0, SEEK_CUR) = 0
0.000024 : lseek(6, 0, SEEK_CUR) = 0
0.000028 : fstat(6, {st_mode=S_IFREG|0664, st_size=36431, ...}) = 0
0.000052 : อ่าน(6, "U\r\r\n\0\0\0\0\216t\362aR\303\0\0\343\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0"..., 36432) = 36431
0.000024 : อ่าน(6, "", 1) = 0
0.000438 : ปิด(6) = 0
0.000083 : mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f23fcbaf000
0.000100 : stat("/home/.../bin", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
0.000120 : stat("/usr/lib/python3.8", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
0.000122 : stat("/usr/lib/python3.8/lib-dynload", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
0.000037 : getcwd("/home/yuval/src/themis", 1024) = 23
0.000046 : stat("/home/yuval/src/themis", {st_mode=S_IFDIR|0775, st_size=130, ...}) = 0
0.000037 : stat("/home/.../lib/python3.8/site-packages", {st_mode=S_IFDIR|0775, st_size=12288, ...}) = 0
0.000051 : stat("/home/.../lib/python3.8/site-packages/pandas/core/array_algos", {st_mode=S_IFDIR|0775, st_size=163, ...}) = 0
0.000041 : stat("/home/.../lib/python3.8/site-packages/pandas/core/array_algos/masked_reductions.py", {st_mode=S_IFREG|0664, st_size=3721, ...}) = 0
0.000085 : stat("/home/.../lib/python3.8/site-packages/pandas/core/array_algos/masked_reductions.py", {st_mode=S_IFREG|0664, st_size=3721, ...}) = 0
0.411113 : openat(AT_FDCWD, "/home/.../lib/python3.8/site-packages/pandas/core/array_algos/__pycache__/masked_reductions.cpython-38.pyc", O_RDONLY|O_CLOEXEC) = 6
0.000053 : fstat(6, {st_mode=S_IFREG|0664, st_size=3329, ...}) = 0
0.000027 : ioctl(6, TCGETS, 0x7ffed1278d60) = -1 ENOTTY (ioctl ไม่เหมาะสมสำหรับอุปกรณ์)
0.000043 : lseek(6, 0, SEEK_CUR) = 0
0.000037 : lseek(6, 0, SEEK_CUR) = 0
0.000025 : fstat(6, {st_mode=S_IFREG|0664, st_size=3329, ...}) = 0
0.000032 : อ่าน(6, "U\r\r\n\0\0\0\0\216t\362a\211\16\0\0\343\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0"..., 3330) = 3329
0.000025 : อ่าน(6, "", 1) = 0
0.000438 : ปิด(6) = 0
0.000105 : stat("/home/.../lib/python3.8/site-packages/pandas/core/arrays", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
0.000102 : stat("/home/.../lib/python3.8/site-packages/pandas/core/arrays/categorical.py", {st_mode=S_IFREG|0664, st_size=94502, ...}) = 0
0.000101 : stat("/home/.../lib/python3.8/site-packages/pandas/core/arrays/categorical.py", {st_mode=S_IFREG|0664, st_size=94502, ...}) = 0
0.413090 : openat(AT_FDCWD, "/home/.../lib/python3.8/site-packages/pandas/core/arrays/__pycache__/categorical.cpython-38.pyc", O_RDONLY|O_CLOEXEC) = 6
0.000063 : fstat(6, {st_mode=S_IFREG|0664, st_size=77947, ...}) = 0
0.000041 : ioctl(6, TCGETS, 0x7ffed127b180) = -1 ENOTTY (ioctl ไม่เหมาะสมสำหรับอุปกรณ์)
0.000037 : lseek(6, 0, SEEK_CUR) = 0
0.000023 : lseek(6, 0, SEEK_CUR) = 0
0.000031 : fstat(6, {st_mode=S_IFREG|0664, st_size=77947, ...}) = 0
0.000085 : อ่าน(6, "U\r\r\n\0\0\0\0\216t\362a&q\1\0\343\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0"..., 77948) = 77947

ฮิสโตแกรมของเวลาที่ใช้ใน openat เพื่อเปิด Python และนำเข้า pytorch

fr flag
ฉันมีปัญหาที่คล้ายกันมากและรุนแรงยิ่งขึ้น openat() เพื่อเปิดไฟล์จริงๆ ใช้เวลา 5 วินาที! ทุกอย่างที่เกี่ยวข้องกับการเดินไดเร็กทอรีทรีหรือสถิติอยู่ในช่วง µs คุณเข้าใกล้ประเด็นนี้มากขึ้นหรือไม่?
YuvGM avatar
kz flag
ใช่. แต่ฉันไม่แน่ใจว่าเป็นอย่างไร ฉันได้แนบไคลเอนต์กับโดเมนอีกครั้ง และพบว่า chronyd ทำงานไม่ถูกต้อง (ฉันไม่สามารถเข้าถึง NTP ภายนอกและจะไม่อัปเดตจากแหล่งเดียวด้วยเหตุผลบางประการ) ฉันรู้สึกผิดหวังกับมันมากจนต้องรันคำสั่ง ssh ไปยังเซิร์ฟเวอร์โดเมนใน crontab และอัปเดตจากวันที่ที่ส่งคืน วันที่ไม่แม่นยำมากแต่ก็พอได้ ฉันไม่แน่ใจว่าการเปลี่ยนแปลงใดช่วยแก้ปัญหาได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา