ছোট লেখাগুলি সম্পাদন করার সময় আমি একটি এসএমবি / সিআইএফএস শেয়ারের সাথে একটি পারফরম্যান্স সমস্যা সমাধানের জন্য সংগ্রাম করছি।
প্রথমে আমাকে আমার বর্তমান নেটওয়ার্ক সেটআপটি বর্ণনা করতে দিন:
সার্ভার
- Synology DS215j (এসএমবি 3 সমর্থন সক্ষম সহ)
ক্লায়েন্ট (একই কম্পিউটারের দ্বৈত বুটযুক্ত তারযুক্ত গিগ-ই)
- উবুন্টু 14.04.5 এলটিএস, ট্রাস্টি তাহর
- উইন্ডোজ 8.1
smb.conf
[global]
printcap name=cups
winbind enum groups=yes
include=/var/tmp/nginx/smb.netbios.aliases.conf
socket options=TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
security=user
local master=no
realm=*
passdb backend=smbpasswd
printing=cups
max protocol=SMB3
winbind enum users=yes
load printers=yes
workgroup=WORKGROUP
আমি বর্তমানে সি ++ তে লিখিত নিম্নলিখিত প্রোগ্রামটির সাথে ছোট লেখার পারফরম্যান্সটি পরীক্ষা করছি ( এখানে গিটহাবের উপর ):
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main(int argc, char* argv[])
{
ofstream outFile(argv[1]);
for(int i = 0; i < 1000000; i++)
{
outFile << "Line #" << i << endl;
}
outFile.flush();
outFile.close();
return 0;
}
লিনাক্স মাউন্ট কনফিগারেশন:
//192.168.1.10/nas-main on /mnt/nas-main type cifs (rw,noexec,nodev)
লিনাক্সে প্রোগ্রাম রানটাইম (~ 100 এমবিপিএসে নেটওয়ার্ক আউটপুট পিক করে):
$ time ./nas-write-test /mnt/nas-main/home/will/test.txt
real 0m0.965s
user 0m0.148s
sys 0m0.672s
পিসিএপি স্ন্যাপশট একক টিসিপি প্যাকেটে অনেকগুলি লাইন ছাঁটাই করে দেখায়:
উইন্ডোজে পাওয়ারশেলের দ্বারা পরিমাপকৃত প্রোগ্রাম রানটাইম:
> Measure-Command {start-process .\nas-write-test.exe -argumentlist "Z:\home\will\test-win.txt" -wait}
Days : 0
Hours : 0
Minutes : 9
Seconds : 29
Milliseconds : 316
Ticks : 5693166949
TotalDays : 0.00658931359837963
TotalHours : 0.158143526361111
TotalMinutes : 9.48861158166667
TotalSeconds : 569.3166949
TotalMilliseconds : 569316.6949
উইন্ডোজটিতে পিসিএপি স্ন্যাপশট প্রতি এসএমবিতে একক লাইন দেখায় অনুরোধ লিখুন:
এই একই প্রোগ্রামটি উইন্ডোজে প্রায় 10 মিনিট (~ 2.3Mbps) নেয় takes স্পষ্টতই, উইন্ডোজ পিসিএপি খুব কম পে-লোড দক্ষতার সাথে খুব শোরগোলের এসএমবি কথোপকথন দেখায়।
উইন্ডোজে এমন কোনও সেটিংস রয়েছে যা ছোট লেখার পারফরম্যান্সকে উন্নত করতে পারে? প্যাকেট ক্যাপচারগুলি দেখে মনে হয় উইন্ডোজ সঠিকভাবে লেখাগুলি বাফার করে না এবং সঙ্গে সঙ্গে একবারে ডেটা এক লাইনে প্রেরণ করে। যদিও লিনাক্সে, ডেটাগুলি ভারীভাবে বাফার করা হয় এবং এর ফলে আরও উচ্চতর পারফরম্যান্স রয়েছে। পিসিএপি ফাইলগুলি সহায়ক হবে কিনা তা আমাকে জানিয়ে দিন এবং আমি সেগুলি আপলোড করার উপায় খুঁজে পেতে পারি।
আপডেট 10/27/16:
@ শেফোক দ্বারা উল্লিখিত হিসাবে, আমি max protocol
নিম্নলিখিতটি দিয়ে এসএমবি 1 এ সাম্বা সার্ভার সেটিংকে কমিয়েছি:
max protocol=NT1
উপরের সেটিংটির ফলে ঠিক একই আচরণ হয়েছে।
আমি অন্য উইন্ডোজ 10 মেশিনে একটি অংশ তৈরি করে সাম্বার পরিবর্তনশীলটিও সরিয়েছি এবং এটি সাম্বা সার্ভারের মতোই আচরণটি প্রদর্শন করে, তাই আমি বিশ্বাস করতে শুরু করি যে এটি সাধারণভাবে উইন্ডোজ ক্লায়েন্টদের সাথে একটি লেখার ক্যাচিং বাগ।
আপডেট: 10/06/17:
সম্পূর্ণ লিনাক্স প্যাকেট ক্যাপচার (14MB)
সম্পূর্ণ উইন্ডোজ প্যাকেট ক্যাপচার (375 এমবি)
আপডেট: 10/12/17:
আমি একটি এনএফএস শেয়ার সেটআপও করি এবং উইন্ডোজও এর জন্য কোনও বাফারিংয়ের সাথে লিখেনি। সুতরাং, আমি অবশ্যই যতদূর বলতে পারি এটি অবশ্যই অন্তর্নিহিত উইন্ডোজ ক্লায়েন্টের সমস্যা, যা অবশ্যই দুর্ভাগ্যজনক: - /
কোন সাহায্য প্রশংসা হবে!