Chia sẻ kinh nghiệm chọn VPS cho hệ thống vừa và nhỏ

Chọn VPS nào, ở đâu, cấu hình như thế nào … ? Là những câu hỏi thường gặp khi triển khai hệ thống server.

 

Sau đây là kinh nghiệm của mình về những hệ thống vừa & nhỏ đã triển khai.

 

I. Memory

 

Tuỳ thuộc vào nhu cầu sử dụng bộ nhớ ứng dụng để có thể đưa ra cấu hình memory tương ứng.

 

Theo như kinh nghiệm của mình MySQL cần có cấu hình tối thiểu 2GB để tránh crash MySQL

 

Đối với MongoDB, Solr, Redis cần có memory hơn 2GB (4/8GB) để có thể hoạt động tốt, vì những ứng dụng này chiếm dụng memory rất nhiều.

 

II. CPU

 

CPU tuỳ thuộc vào lượng sử dụng web server của bạn. Số lượng CPU sẽ ảnh hưởng đến process đổng thời có thể xử lý của các application (Nginx/PHP-FPM/…)

 

CPU ít nhất để có thể có một hệ thống ổn định khoảng 2CPUs.

 

III. Disk I/O

 

1. Kiểm tra đồng thời random read & random write

 

Chạy command sau

 

 

 

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=zodinet --filename=zodinet --bs=4k --iodepth=64 --size=4G --readwrite=randread  hocvps: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64

 

Kết quả như sau

 

 

 

Starting 1 process
 hocvps: Laying out IO file (1 file / 4096MiB)
 Jobs: 1 (f=1): [r(1)][100.0%][r=374MiB/s,w=0KiB/s][r=95.8k,w=0 IOPS][eta 00m:00s]
 hocvps: (groupid=0, jobs=1): err= 0: pid=25122: Sat Aug 22 15:07:30 2020
    read: IOPS=94.4k, BW=369MiB/s (387MB/s)(4096MiB/11106msec)
    bw (  KiB/s): min=350400, max=404864, per=99.91%, avg=377305.14, stdev=12665.99, samples=22
    iops        : min=87600, max=101216, avg=94326.18, stdev=3166.43, samples=22
   cpu          : usr=16.08%, sys=53.67%, ctx=59751, majf=0, minf=94
   IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
      submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
      complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
      issued rwts: total=1048576,0,0,0 short=0,0,0,0 dropped=0,0,0,0
      latency   : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
    READ: bw=369MiB/s (387MB/s), 369MiB/s-369MiB/s (387MB/s-387MB/s), io=4096MiB (4295MB), run=11106-11106msec

 

Ta có thể thấy IOPS=95.4k, đây là số lựơng tác vụ request có thể thực thi trong một giây

 

Kết quả sau khi mình đo ở 1 số hosting

 

  IOPS  
Digital Ocean 95.4k  
AWS    
vHost (Singapore) 15.9k  
vHost (VN) 17.3k  

 

2. HDD/SSD

 

  • SSD: Đây luôn là ưu tiên số 1 khi lựa chọn loại Disk cho server, SSD sẽ giúp tăng tốc đáng kể server của bạn so với HDD, đổng thời cũng hỗ trợ giúp memory buffer nếu hệ thống của bạn không có nhiều memory.
  • HDD: Chỉ nên sử dụng để lưu trữ data backup để giảm chi phí

 

IV. Network

 

1. Traceroute

 

Trước khi thuê một VPS, chúng ta cần xác định đối tượng khách hàng để có routing phù hợp. Server càng gần khách hàng, thì sẽ ít số lượng hops sẽ phải đi qua.

 

  • Khách Global & VN: server HK hoặc Singapore là lựa chọn phù hợp nhất
  • Khách VN: Nên đặt server ở VN.

 

Chúng ta có thể sử dụng traceroute để kiểm tra số lượng hops từ server đế khách hàng.

 

Cài đặt như sau

 

yum install traceroute -y

 

Kiểm tra như sau

 

Server Digital Ocean

 

traceroute to api.wordpress.org (198.143.164.251), 30 hops max, 60 byte packets
 1  178.128.16.254 (178.128.16.254)  1.295 ms 178.128.16.253 (178.128.16.253)  0.652 ms 178.128.16.254 (178.128.16.254)  0.653 ms
 2  ae4-3101.sgp1-edge2.digitalocean.com (138.197.250.254)  0.790 ms ae5-3101.sgp1-edge1.digitalocean.com (138.197.250.252)  0.855 ms  0.898 ms
 3  138.197.245.8 (138.197.245.8)  1.622 ms ae19.sg-sin01-edge2.digitalocean.com (138.197.245.14)  1.305 ms 138.197.245.0 (138.197.245.0)  1.152 ms
 4  ix-ae-12-0.thar1.svq-singapore.as6453.net (120.29.214.141)  1.189 ms  1.151 ms  1.215 ms
 5  if-ae-11-2.tcore1.svw-singapore.as6453.net (180.87.98.38)  191.986 ms  191.877 ms  181.464 ms
 6  if-et-23-2.hcore2.kv8-chiba.as6453.net (180.87.67.33)  78.064 ms  78.940 ms if-ae-2-2.tcore2.svw-singapore.as6453.net (180.87.12.2)  172.708 ms
 7  if-ae-20-2.tcore2.lvw-losangeles.as6453.net (64.86.252.216)  176.626 ms  179.646 ms if-ae-53-2.tcore2.lvw-losangeles.as6453.net (64.86.252.56)  178.416 ms
 8  if-ae-2-2.tcore1.lvw-losangeles.as6453.net (66.110.59.1)  172.621 ms  168.920 ms  168.485 ms
 9  64.86.197.99 (64.86.197.99)  172.080 ms  179.964 ms  172.498 ms
10  ae36.cr1-chi1.ip4.gtt.net (89.149.141.165)  208.281 ms  205.161 ms  212.790 ms
11  ip4.gtt.net (173.205.41.90)  227.835 ms  223.767 ms  222.227 ms
12  agg2.c13.r03.s101.chi03.singlehop.net (108.178.47.245)  218.636 ms  214.611 ms  218.602 ms
13  * * *
14  * * *

 

Server vHost VN

 

traceroute to api.wordpress.org (198.143.164.251), 30 hops max, 60 byte packets
 1  103.92.30.10 (103.92.30.10)  0.198 ms  0.227 ms  0.133 ms
 2  210.211.114.177 (210.211.114.177)  1.299 ms  1.286 ms  1.333 ms
 3  210.211.112.221 (210.211.112.221)  1.267 ms 210.211.112.189 (210.211.112.189)  0.798 ms 210.211.112.169 (210.211.112.169)  1.093 ms
 4  115.84.180.45 (115.84.180.45)  1.732 ms 115.84.180.41 (115.84.180.41)  8.714 ms 115.84.180.45 (115.84.180.45)  1.616 ms
 5  203.113.186.209 (203.113.186.209)  1.568 ms  1.534 ms 203.113.186.211 (203.113.186.211)  1.484 ms
 6  localhost (27.68.236.208)  37.316 ms localhost (27.68.236.105)  36.334 ms localhost (27.68.236.208)  36.154 ms
 7  localhost (27.68.250.167)  33.575 ms  33.610 ms localhost (27.68.250.169)  32.537 ms
 8  localhost (27.68.250.169)  32.325 ms 203.131.248.245 (203.131.248.245)  68.263 ms  68.217 ms
 9  203.131.248.245 (203.131.248.245)  68.218 ms ae-12.r03.tkokhk01.hk.bb.gin.ntt.net (129.250.5.254)  178.733 ms 203.131.248.245 (203.131.248.245)  68.158 ms
10  ae-11.r24.tkokhk01.hk.bb.gin.ntt.net (129.250.6.99)  65.556 ms ae-12.r03.tkokhk01.hk.bb.gin.ntt.net (129.250.5.254)  176.756 ms ae-11.r24.tkokhk01.hk.bb.gin.ntt.net (129.250.6.99)  65.646 ms
11  ae-1.r25.tkokhk01.hk.bb.gin.ntt.net (129.250.2.115)  70.785 ms ae-10.r24.tkokhk01.hk.bb.gin.ntt.net (129.250.6.93)  65.414 ms  65.713 ms
12  ae-1.r25.tkokhk01.hk.bb.gin.ntt.net (129.250.2.115)  65.694 ms ae-7.r24.osakjp02.jp.bb.gin.ntt.net (129.250.2.42)  69.516 ms  71.935 ms
13  ae-4.r24.snjsca04.us.bb.gin.ntt.net (129.250.2.118)  172.869 ms ae-7.r24.osakjp02.jp.bb.gin.ntt.net (129.250.2.42)  71.336 ms ae-4.r24.snjsca04.us.bb.gin.ntt.net (129.250.2.118)  171.757 ms
14  ae-0.r25.snjsca04.us.bb.gin.ntt.net (129.250.3.147)  177.879 ms ae-4.r24.snjsca04.us.bb.gin.ntt.net (129.250.2.118)  167.033 ms ae-0.r25.snjsca04.us.bb.gin.ntt.net (129.250.3.147)  173.293 ms
15  ae-2.a00.snjsca04.us.bb.gin.ntt.net (129.250.3.58)  175.528 ms  175.198 ms  174.256 ms
16  ae7.mpr3.sjc7.us.zip.zayo.com (64.125.14.29)  202.428 ms  204.670 ms ae-2.a00.snjsca04.us.bb.gin.ntt.net (129.250.3.58)  177.620 ms
17  ae7.mpr3.sjc7.us.zip.zayo.com (64.125.14.29)  203.976 ms ae16.cr1.sjc2.us.zip.zayo.com (64.125.31.12)  203.211 ms ae7.mpr3.sjc7.us.zip.zayo.com (64.125.14.29)  205.709 ms
18  ae27.cs1.sjc2.us.eth.zayo.com (64.125.30.230)  253.107 ms  253.056 ms  259.452 ms
19  ae6.cs1.den5.us.eth.zayo.com (64.125.31.218)  254.008 ms  253.991 ms  261.287 ms
20  * * *
21  * ae11.er2.ord7.us.zip.zayo.com (64.125.26.251)  260.064 ms  251.022 ms
22  128.177.108.98.IPYX-142927-900-ZYO.zip.zayo.com (128.177.108.98)  255.480 ms  256.503 ms  261.208 ms
23  128.177.108.98.IPYX-142927-900-ZYO.zip.zayo.com (128.177.108.98)  255.070 ms  254.365 ms agg1.c13.r03.s101.chi03.singlehop.net (108.178.47.247)  239.832 ms
24  agg1.c13.r03.s101.chi03.singlehop.net (108.178.47.247)  243.935 ms * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

 

Kết luận, chúng tay phải mất 24 trạm để có thể đi từ VN sang server của WordPress.com,

 

Gói tin đi từ VN > Hongkong > Nhật > Mỹ

 

Tuy nhiên khi đặt ở Sing, chúng ta chỉ tốn 12 trạm để đến WordPress.com

 

Gói tin đi từ Singapore > Mỹ

 

2. MTR

 

Ngoài traceroute chúng ta cũng có thể sử dụng mtr để kiểm tra tỉ lệ lỗi trong việc truyền gửi gói tin .

 

Chúng ta có thể chạy command sau để kiểm tra tỉ lệ lỗi gói tin đến server WordPress.com

 

Cài đặt như sau

 

yum -y install mtr

 

Sử dụng như sau

 

 mtr -n api.wordpress.org

 

Kết quả như sau

 

Host                                                                                                                                                                                             Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 103.92.30.10       0.0%    60    0.3   0.3   0.2   0.8   0.0
 2. 210.211.114.177    0.0%    60    1.1   7.1   0.7 158.2  27.5
 3. 210.211.112.157    0.0%    60    2.1   7.1   0.8 151.8  26.7
 4. 115.84.180.45      0.0%    60    1.6   8.2   1.3 176.1  27.9
 5. 203.113.186.211    0.0%    60    1.6   7.7   1.1 161.3  27.7
 6. 27.68.236.105      0.0%    60   35.9  41.3  31.2 200.0  29.0
 7. 27.68.250.169      0.0%    60   31.6  38.4  31.4 203.9  30.1
 8. 203.131.248.245    0.0%    60   73.3  75.8  68.0 236.1  30.5
 9. 129.250.5.254      0.0%    60  176.4 182.6 176.1 348.6  28.8
10. 129.250.6.99       0.0%    60   82.0  72.5  65.6 220.5  27.4
11. 129.250.2.115      67.8%    60   68.0  73.2  65.8 240.1  30.0
12. 129.250.2.42       67.8%    60   69.9  76.8  69.7 210.8  27.2
13. 129.250.2.118      67.8%    60  172.4 175.0 167.3 316.1  25.2
14. 129.250.3.147      67.8%    60  171.7 176.8 170.6 305.8  23.1
15. 129.250.3.58       67.8%    60  170.2 175.6 170.2 304.9  21.1
16. 64.125.14.29       67.8%    60  203.4 208.6 203.2 343.0  22.5
17. 64.125.31.12       67.8%    60  202.5 205.6 200.8 345.9  22.8
18. 64.125.30.230      67.8%    60  252.2 256.7 251.5 394.4  23.0
19. 64.125.31.218      67.8%    60  253.6 267.7 253.5 401.6  41.3
20. 64.125.29.18       91.4%    59  248.5 247.1 246.3 248.5   0.7
21. 64.125.26.251      0.0%    59  249.0 255.2 248.8 387.9  23.6
22. 128.177.108.98     0.0%    59  254.9 260.0 253.9 399.7  24.6
23. 108.178.47.247     0.0%    59  239.0 244.7 238.7 389.5  25.8
24. 198.143.164.251    0.0%    59  234.6 240.6 234.3 391.4  27.2

 

Theo như chúng ta thấy, tỉ lệ lỗi rất cao tại IP 129.250.2.115. Điều này có nghĩa là gói tin của chúng ta có vấn đề và bị drop tại Hops 129.250.2.115.

 

Theo như mình tìm hiểu, tất cả các VPS ở VN đều có limit băng thông quốc tế với gói cơ bản là 4Mpbs. Vì vậy khi băng thông quốc tế vượt ngưỡng thì sẽ bị giới hạn.

 

Do đó, IP 129.250.2.115 có thể là hops gateway quốc tế của nhà cung cấp VPS.

 

V. Hỗ trợ

 

Và cuối cùng, không kém phần quan trọng, đó là tốc độ & phạm vi hỗ trợ của mỗi nhà cung cấp khi xảy ra sự cố.

 

Sau đây là một số kinh nghiệm của mình

 

  • Cloud: Không có hỗ trợ, mọi thứ về hạ tầng / zombie bạn phải tự xử lý.
  • Nhà cung cấp hosting VN: Hỗ trợ khá tốt & nhanh

 

 

 

Bài viết liên quan