2019/12/09

삼바 속도 향상.

1. 전부 설정 할 필요는 없음.
1.1 사항에 맞게 다음 내용에서 선택해 사용.
[global]

# FORCE THE DISK SYSTEM TO ALLOCATE REAL STORAGE BLOCKS WHEN
# A FILE IS CREATED OR EXTENDED TO BE A GIVEN SIZE.
# THIS IS ONLY A GOOD OPTION FOR FILE SYSTEMS THAT SUPPORT
# UNWRITTEN EXTENTS LIKE XFS, EXT4, BTRFS, OCS2.
# IF YOU USE A FILE SYSTEM THAT DOES NOT SUPPORT UNWRITTEN
# EXTENTS, SET "strict allocate = no".
# NOTE: MAY WASTE DRIVE SPACE EVEN ON SUPPORTED FILE SYSTEMS
# SEE: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798532

   strict allocate = Yes

# THIS IS TO COUNTERACT SPACE WASTAGE THAT CAN BE
# CAUSED BY THE PREVIOUS OPTION
# SEE: https://lists.samba.org/archive/samba-technical/2014-July/101304.html

   allocation roundup size = 4096

# ALLOW READS OF 65535 BYTES IN ONE PACKET.
# THIS TYPICALLY PROVIDES A MAJOR PERFORMANCE BENEFIT.

   read raw = Yes

# SERVER SIGNING SLOWS THINGS DOWN WHEN ENABLED.
# THIS WAS DISABLED BY DEFAULT PRIOR TO SAMBA 4.
# Thanks to Joe in the comments section!

   server signing = No

# SUPPORT RAW WRITE SMBs WHEN TRANSFERRING DATA FROM CLIENTS.

   write raw = Yes

# WHEN "strict locking = no", THE SERVER PERFORMS FILE LOCK
# CHECKS ONLY WHEN THE CLIENT EXPLICITLY ASKS FOR THEM.
# WELL-BEHAVED CLIENTS ALWAYS ASK FOR LOCK CHECKS WHEN IT IS
# IMPORTANT, SO IN THE VAST MAJORITY OF CASES,
# "strict locking = auto" OR "strict locking = no" IS ACCEPTABLE.

   strict locking = No

# TCP_NODELAY:
#    SEND AS MANY PACKETS AS NECESSARY TO KEEP DELAY LOW
# IPTOS_LOWDELAY:
#    [Linux IPv4 Tweak] MINIMIZE DELAYS FOR INTERACTIVE TRAFFIC
# SO_RCVBUF:
#    ENLARGE SYSTEM SOCKET RECEIVE BUFFER
# SO_SNDBUF:
#    ENLARGE SYSTEM SOCKET SEND BUFFER

   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072

# SMBWriteX CALLS GREATER THAN "min receivefile size" WILL BE
# PASSED DIRECTLY TO KERNEL recvfile/splice SYSTEM CALL.
# TO ENABLE POSIX LARGE WRITE SUPPORT (SMB/CIFS WRITES UP TO 16MB),
# THIS OPTION MUST BE NONZERO.
# THIS OPTION WILL HAVE NO EFFECT IF SET ON A SMB SIGNED CONNECTION.
# MAX VALUE = 128k

   min receivefile size = 16384

# USE THE MORE EFFICIENT sendfile() SYSTEM CALL FOR EXCLUSIVELY
# OPLOCKED FILES.
# NOTE: ONLY FOR CLIENTS HIGHER THAN WINDOWS 98/Me

   use sendfile = Yes

# READ FROM FILE ASYNCHRONOUSLY WHEN SIZE OF REQUEST IS BIGGER
# THAN THIS VALUE.
# NOTE: SAMBA MUST BE BUILT WITH ASYNCHRONOUS I/O SUPPORT

   aio read size = 16384

# WRITE TO FILE ASYNCHRONOUSLY WHEN SIZE OF REQUEST IS BIGGER
# THAN THIS VALUE
# NOTE: SAMBA MUST BE BUILT WITH ASYNCHRONOUS I/O SUPPORT

   aio write size = 16384
 
2. 삼바 속도 옵션 값 정리.
#Read Raw = no
#Write Raw = no

#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=4096 SO_RCVBUF=4096
#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=16384 SO_RCVBUF=16384
#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=32768 SO_RCVBUF=35768
#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=65536 SO_RCVBUF=65536

#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=524288 SO_SNDBUF=524288
#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=524288 SO_SNDBUF=524288

2.1 속도.
윈도우 7 파일전송 20MB/s

최대 네트워크 사용률 90% 좋음.
95% 이상일 경우 웹서핑/다운로드/스트리밍 영향을 미친다.
80% 이면 유투브 1080p 영상을 보면서 데이터를 전솔할 때 버벅 거린다.(비디오 손실은 없음)

ifconfig
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 ---> mtu 값 변경.

수동 설정 방법.
ip link set eth0 mtu 9000
ip link show eth0

버퍼 사이즈 조정
524288 -> 100MB+ ~90%
262144 -> 55MB ~50%
65536 -> ~40MB ~40%
8192 -> ~20MB ~20%

2.2 참고
우분투 17.10 네트워크 메니저 변경 됨.
/etc/network/interfaces 설정해도 동작 하지 않음.
우분투에서 ifupdown 패키지를 더이상 사용하 않음.
17.10 서버 부터 netplan을 사용하여 systemd-networkd를 제어한다고 명시 함.

설치 타이베 따른 설정 파일 위치가 다름.
Server ISO : /etc/netplan/01-netcfg.yaml
Cloud Image : /etc/netplan/50-cloud-init.yaml
Desktop ISO : /etc/netplan/01-network-manager-all.yaml

설치
apt install netplan
apt install netplan.io

디바이스 이름 확인
ip a

설정 방법.
ethernets:
      enp3s0:
          dhcp4: true
      enp4s0:
          addresses:
              - 192.168.0.10/24
          gateway4: 192.168.0.1
          mtu: 1480
          nameservers:
              addresses:
                  - 8.8.8.8
                  - 9.9.9.9
      net1:
          addresses:
              - fe80::a00:10a/120
          gateway6: fe80::a00:101
          match:
              macaddress: 52:54:00:12:34:06
      net2:
          dhcp4: true
          dhcp6: true
          match:
              macaddress: 52:54:00:12:34:07
          mtu: 9000


Bonding 설정
다수의 네트워크 인터페이스를 단일 링크로 만든다(가용성, 로드 벨런싱, 최대 처리량)
https://help.ubuntu.com/community/UbuntuBonding?_ga=2.47296547.5475972.1546175131-1696157538.1544368933#Descriptions_of_bonding_modes

mode 1 설정: active-backup 셋팅
bonds:
      bond0:
          dhcp4: yes
          interfaces:
              - enp3s0
              - enp4s0
          parameters:
              mode: active-backup
              primary: enp3s0


Bridges 설정
DHCP를 활용한 간단한 예제
bridges:
      br0:
          dhcp4: yes
          interfaces:
              - enp3s0

Vlan 설정
기본적으로 vlan을 설정하기 위해서 key로 이름을 지정하고 vlan에서 사용하는 ID와 링크 정보를 추가한다.
vlans:
      vdev:
          id: 101
          link: net1
          addresses:
              - 10.0.1.10/24
      vprod:
          id: 102
          link: net2
          addresses:
              - 10.0.2.10/24
      vtest:
          id: 103
          link: net3
          addresses:
              - 10.0.3.10/24
      vmgmt:
          id: 104
          link: net4
          addresses:
              - 10.0.4.10/24


netplan generate : /etc/netplan에 renderer에 대한 구성들을 생성한다.
netplan apply : renderer에 대한 구성들을 적용하고, 필요에따라 재시작한다.
netplan ifupdown-migrate : /etc/network/interfaces 의 내용을 마이그레이션 한다.

설정한 인터페이스 끄고키기
$ ip link set $dev up
$ ip link set $dev down

고정 아이피 설정 /etc/netplan/a.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
        enp3s0:
            addresses:
                - 10.10.10.2/24
            dhcp4: no

Netplan을 사용하고 싶지 않을 경우
Ubuntu 서버 설치 이미지로 부팅시 grub (e 버튼을 클릭해서 수정하거나, F6을 눌러 bootspash로 들어가서)에서
preseeding 설정으로 netcfg/do_not_use_netplan=true 명령을 추가

mtu 자동 설정
more /run/systemd/network/10-netplan-enp5s0.network

[Match]
Name=enp5s0  ---> Mac 주소를 확인 해야 함.

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true

mtu 수정
맥 정보 확인.
ip a
04:92:26:b7:ba:XX

정보 수정
network:
 version: 2
 renderer: networkd
 ethernets:
 eth0:
 dhcp4: no
 addresses: [9.3.3.XX/24]
 gateway4: 9.3.3.X
 nameservers:
 addresses: [9.3.1.YY, 8.8.8.8]

eth4:
 addresses: [10.1.1.8/24]
 mtu: 9000

eth2:
 addresses: [192.168.1.8/24]
 mtu: 9000

설정 적용.
netplan apply

외부망이 dhclient 자동을 받기 때문에 mtu 값도 자동 설정이 된다.
/etc/dhcp/dhclient.conf mtu 설정 방법을 연구 해야 한다.

예전 방식으로 사용하려면 패키지를 설치.
apt-get install ifupdown

vi /etc/network/interfaces
auto lo enp5s0 enp6s0
 
iface lo inet loopback

iface enp5s0 inet dhcp
post-up /sbin/ifconfig enp5s0 mtu 9000 ---> 이걸로 변경 해 버린.
dns-nameserver 172.16.1.1 8.8.8.8

iface enp6s0 inet static
      address 172.16.2.1
      netmask 255.255.255.0
      broadcast 172.16.2.255
dns-nameserver 172.16.1.1 8.8.8.8

dhcpd mtu 설정
이더넷 MTU는 1500 바이트이므로 이더넷 프레임에 포함 할 수있는 가장 큰 IP 패킷 (또는 다른 페이로드)은 1500 바이트이다.
이더넷 헤더에 26 바이트를 추가하면 최대 프레임 (MTU와 동일하지 않음)이 1526 바이트가 됨.
넷기어 장비는 이더넷 헤더를 기본으로 잡는다. 그래서 1526으로 되어있음.

"MTU"라는 용어는 계층 3에서 패킷의 최대 크기만을 정의하기위한 것마은 아니다.
계층 2 MTU를 참조한다.
IP 패킷 (계층 3)의 길이는 IP 헤더에서 16 비트 총 길이 필드의 최대 값으로 제한된다.
IPv4의 경우 최대 페이로드 크기는 65515이다.(= 2^16 - 1 - 20 bytes header).

결국 dhclinet로 적용되는 외부 아이피는, 그 값을 dhcpd에서 주기 때문에. 수동으로 설정해줘야 한다.
처음 정보를 변경할 때는 수동으로 명령을 입력해줘야 한다.
dhcp 상위망 연동 때문에.

ip link show eth0
ip link set eth0 mtu 9000
ip link show eth0

만약 보안장비에서 dhcpd 설정시
템블릿 파일을 수정해 값을 변경할 수가 있다.

subnet.mas 파일 수정
option interface-mtu 9000; 추가.

subnet 192.168.0.0 netmask 255.255.255.0 {
  option broadcast-address 192.168.0.255;
  option routers 192.168.0.1;
  option interface-mtu 9000; ---> 이 값으로 변경.
}


3. 속도 측정.
dd if=/dev/zero of=/마운트/위치/TMP/output bs=크기(k,M,G) count=측정횟수

dd if=/dev/zero of=/home/linuxlee/Shinobi/videos/lNOkBz1PzM/tbulnOHIq8/2019-12-07T12-30-09.mp4 bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 6.06899 s, 173 MB/s ---> 173MB/s 초당 173 메가...


댓글 없음:

댓글 쓰기