Linux 서버(미디어 서버) 최적화 및 조정

Linux 서버(미디어 서버) 최적화 및 조정

저는 다음을 기반으로 서버, 특히 미디어 서버를 재구축했습니다.데비안 12안정(커널6.1).

  • CPU:i7-6700K(오버클럭 없이)
  • 메모리: 16GB DDR4(듀얼 채널)
  • 네트워크 카드: 2 2.5Gbit(바운드잔액-tlb) (최대 전송 단위bond0:4096. 하지만 내 네트워크 홈에는 클래식 MTU가 있습니다)
  • 그래픽 프로세서: PHY T400(4GB 버전)
  • 저장: 삼SSD

이러한 SSD의 구성은 다음과 같습니다.

  1. SSD1: 영화당 1TB(xfs)(스케줄러:전혀)
  2. SSD2:운영 체제의 경우 250GB(125GBOS, 스왑용 125GB)(외부 4)(스케줄러:전혀)
Disk /dev/sdb: 232,89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 860 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcfa6d02d

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1  *         2048 244140031 244137984 116,4G 83 Linux
/dev/sdb2       244140032 488280063 244140032 116,4G 82 Linux swap / Solaris

dumpe2fs 1.47.0 (5-Feb-2023)
Filesystem volume name:   root
Last mounted on:          /
Filesystem UUID:          927a3648-60d1-4537-af56-0d87ff5a6e0b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index fast_commit filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              7634944
Block count:              30517248
Reserved block count:     305172
Overhead clusters:        625720
Free blocks:              28139695
Free inodes:              7541676
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Tue Oct 17 02:41:54 2023
Last mount time:          Thu Oct 19 19:21:21 2023
Last write time:          Thu Oct 19 19:21:21 2023
Mount count:              25
Maximum mount count:      -1
Last checked:             Wed Oct 18 03:33:16 2023
Check interval:           0 (<none>)
Lifetime writes:          90 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      5f52b9e5-cf5a-438c-9e90-0c2d91207ea7
Journal backup:           inode blocks
Checksum type:            crc32c
Checksum:                 0x2f208f9b
Journal features:         journal_incompat_revoke journal_64bit journal_checksum_v3 FEATURE_I5
Total journal size:       512M
Total journal blocks:     131072
Max transaction length:   130816
Fast commit length:       256
Journal sequence:         0x0000796d
Journal start:            1
Journal checksum type:    crc32c
Journal checksum:         0x0a6d11a2

  1. SSD3:"일반" 캐싱(트랜스코딩, fscache를 통한 네트워크 마운트 지점 캐싱 등)의 경우 500GB입니다. (외부 4)(스케줄러:전혀)
Disk /dev/sdc: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500MX500SSD1  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

dumpe2fs 1.47.0 (5-Feb-2023)
Filesystem volume name:   <none>
Last mounted on:          /cache
Filesystem UUID:          070d06bd-6a01-4457-b20f-cf699f412168
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index fast_commit filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              30531584
Block count:              122096646
Reserved block count:     0
Overhead clusters:        2201430
Free blocks:              119895208
Free inodes:              30531569
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Wed Oct 18 19:01:18 2023
Last mount time:          Thu Oct 19 19:21:22 2023
Last write time:          Thu Oct 19 19:21:22 2023
Mount count:              16
Maximum mount count:      -1
Last checked:             Wed Oct 18 19:01:18 2023
Check interval:           0 (<none>)
Lifetime writes:          48 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      cbad2af6-a244-4e66-b27c-3e8dea9f8f2f
Journal backup:           inode blocks
Checksum type:            crc32c
Checksum:                 0x47fb58ba
Journal features:         journal_incompat_revoke journal_64bit journal_checksum_v3 FEATURE_I5
Total journal size:       1040M
Total journal blocks:     266240
Max transaction length:   262144
Fast commit length:       4096
Journal sequence:         0x00000384
Journal start:            0
Journal checksum type:    crc32c
Journal checksum:         0xae89c35f

사용된 소프트웨어:무리(그리고하드웨어트랜스코딩/인코딩) 및제공하다(DLNA 소프트웨어)

대용량 파일이 호스팅될 것이기 때문에 영화의 파일 시스템으로 xfs를 선택했습니다(xfs는 이 유형의 파일에서 수행되는 것으로 알려져 있음). 다른 모든 SSD에 대해서도 캐싱을 위해 ext4를 선택했습니다. 내가 올바른 선택을 한 걸까? 사소한 전제: 서버는 "채널" 역할만 하기 때문에 백업 계획, 파일 시스템과 관련된 데이터 보안 등과 관련된 서버/스토리지를 보지 마십시오... 더 자세히 설명하겠습니다... 즉, 코드, 파일 접근 속도(cifs/fscache 경유), 파일 공유 미디어 관련 모든 면에서 최선을 다하고 있어서 뭔가 손상되더라도 아무것도 잃지 않는데... 내가 이해하는지 모르겠어요. 그래서 처리량을 포함하여 작업 속도를 최대한 높이기 위한 최적화/설정을 찾습니다. 구성을 포스팅해봤습니다. 좀 더 전문가의 의견을 토대로 변경/추가해야 할 사항이 있나요? 이러한 구성을 제외하고 운영 체제에서도 뭔가를 변경해야 합니까? 위의 주로 사용하는 소프트웨어는 생략하고 rsyslogd만 실행했습니다.

유충

GRUB_CMDLINE_LINUX_DEFAULT="quiet mitigations=off nopti net.ifnames=0 biosdevname=0 intel_idle.max_cstate=1 i915.enable_psr=0 i915.enable_dc=0 zswap.enabled=1 zswap.compressor=lzo nowatchdog nosgx"

시스템 구성 파일

kernel.sysrq=0
vm.swappiness=1
vm.vfs_cache_pressure=60

fs.suid_dumpable=0
kernel.core_pattern=|/bin/false

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

net.ipv4.tcp_keepalive_time = 60 
net.ipv4.tcp_keepalive_intvl = 10 
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_fastopen=3
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=5
net.ipv4.tcp_sack=1
net.core.default_qdisc=cake
net.ipv4.tcp_congestion_control=bbr

관련 정보