האתר איטי בעומס של 500 RPS? מעבר לשרת ייעודי הוא צעד הגיוני, אך תצורה שגויה מבטלת את היתרונות. אנו רואים לעתים קרובות שרתים שבהם חומרה יקרה יושבת בטלה עקב הגדרות לא אופטימליות של Nginx ו-PostgreSQL. הצוות שלנו, עם ניסיון של עשר שנים, מגדיר שרתים ייעודיים מקצה לקצה: מ-RAID חומרתי ועד ניטור. נבחן את הפרויקט שלך ונבחר תצורה שיכולה להתמודד עם 10,000 RPS. קבל ייעוץ מהנדס — צור קשר.
מדוע תצורת שרת נכונה היא קריטית
אפילו שרת חזק עם 128 GB RAM וכונני NVMe יכול להראות ביצועים גרועים אם פרמטרי המערכת לא מכוונים. טעות אופיינית היא מגבלות ברירת מחדל של תיאורי קבצים (1024) תחת אלפי חיבורים. או opcache מושבת עבור יישומי PHP. אנו מתקנים בעיות כאלה במהלך ההתקנה.
תצורות מומלצות לעומסים שונים
| עומס | CPU | RAM | דיסקים |
|---|---|---|---|
| עד 1000 RPS | 4 vCPU | 16 GB | 2× 240 GB SSD |
| 1000–10000 RPS | 8 vCPU | 64 GB | 2× 480 GB NVMe |
| >10000 RPS | 2× Xeon (16 ליבות) | 128 GB | 2× 960 GB NVMe |
עבור פרויקטים עם PostgreSQL, אנו ממליצים על לפחות 64 GB RAM.
כיצד לבחור רמת RAID?
RAID 1 מספק שיקוף — אם דיסק נכשל, המערכת ממשיכה לעבוד. RAID 10 (או RAID 0 לנתונים) נותן מהירות קריאה/כתיבה מקסימלית. עבור מחיצת השורש אנו משתמשים ב-RAID 1, לנתונים — RAID 10 אם זמינים יותר משני דיסקים. התצורה נעשית באמצעות mdadm:
# Проверить диски
lsblk
fdisk -l
# Создать RAID 1 для корневого раздела
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
mkfs.ext4 /dev/md0
# RAID 10 для данных (4 диска)
mdadm --create /dev/md1 --level=10 --raid-devices=4 \
/dev/sdc /dev/sdd /dev/sde /dev/sdf
מידע נוסף על RAID ניתן לקרוא בויקיפדיה.
השוואת רמות RAID לשרת אינטרנט
| רמה | סובלנות לתקלות | מהירות כתיבה | ניצול דיסק |
|---|---|---|---|
| RAID 0 | אין | ✦✦✦✦✦ | 100% |
| RAID 1 | דיסק אחד | ✦✦✦ | 50% |
| RAID 5 | דיסק אחד | ✦✦✦ | 67–94% |
| RAID 10 | עד 50% מהדיסקים | ✦✦✦✦✦ | 50% |
RAID 10 מהיר פי 3 במהירות כתיבה מ-RAID 5, לכן אנו בוחרים בו לנתונים.
תצורה לדוגמה עבור 10,000 RPS
עבור פרויקט עם עומס של 10,000 RPS אנו ממליצים:
- CPU: 2× Intel Xeon E5-2670 (16 ליבות / 32 תהליכונים)
- RAM: 128 GB DDR4 ECC
- SSD: 2× NVMe 960 GB (RAID 1 למערכת ההפעלה, RAID 0 לנתונים)
- רשת: 1 Gbps ללא הגבלת תעבורה
אופטימיזציה של מערכת וסטאק
פרמטרי מערכת
אנו מייעלים פרמטרי מערכת: מגדילים מגבלות תיאורי קבצים, מכוונים את מחסנית הרשת, ומשביתים swap. הגדרות אופייניות:
# /etc/sysctl.conf и /etc/security/limits.conf
net.core.somaxconn = 65536
net.core.netdev_max_backlog = 65536
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
fs.file-max = 2097152
vm.swappiness = 10
* soft nofile 1048576
* hard nofile 1048576
root soft nofile 1048576
Nginx
# /etc/nginx/nginx.conf
worker_processes 8;
events {
worker_connections 4096;
use epoll;
multi_accept on;
}
http {
keepalive_timeout 65;
keepalive_requests 1000;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
} PHP-FPM ו-OPcache
; /etc/php/8.3/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
[opcache]
opcache.enable = 1
opcache.memory_consumption = 512
opcache.max_accelerated_files = 20000
opcache.validate_timestamps = 0 PostgreSQL
כוונון PostgreSQL הוא קריטי: shared_buffers = 25% מה-RAM, effective_cache_size = 75% מה-RAM, random_page_cost = 1.1 עבור SSD. דוגמה עבור 128 GB RAM:
shared_buffers = 32GB
effective_cache_size = 96GB
maintenance_work_mem = 2GB
work_mem = 128MB
wal_buffers = 64MB
checkpoint_completion_target = 0.9
max_wal_size = 4GB
random_page_cost = 1.1
effective_io_concurrency = 200 תהליך התקנת השרת
- ביקורת תצורה נוכחית — אם השרת כבר בשימוש, אנו מנתחים מדדים ולוגים.
- התקנת מערכת הפעלה (Ubuntu LTS או Debian stable) עם RAID ומערכת קבצים ext4.
- התקנה ואופטימיזציה של סטאק האינטרנט — Nginx, PHP-FPM, PostgreSQL.
- הגדרת אבטחה — חומת אש (ufw), fail2ban, תעודות SSL (Let's Encrypt).
- שילוב ניטור — Prometheus + Grafana, Zabbix להתראות, Sentry לשגיאות.
- אוטומציה של גיבוי ופריסה (Ansible / GitLab CI).
- מסירת תיעוד והדרכה לצוות שלך.
לוח זמנים ועלות
התקנת שרת ייעודי מאפס (מערכת הפעלה, RAID, סטאק, SSL, ניטור) אורכת 3–5 ימים. אופטימיזציה לעומס ספציפי אורכת עוד 2–3 ימים. העלות מחושבת באופן אישי לפי מורכבות והסטאק הנדרש. תצורה שגויה יכולה לעלות עד 40% ביצועים. תצורה נכונה מחזירה את עצמה תוך 2–3 חודשים על ידי הפחתת השהייה והגדלת התפוקה.
למה לבחור בנו
מעל 10 שנות ניסיון בתצורת שרתים. מהנדסי Linux ו-PostgreSQL מוסמכים. אחריות ל-30 יום על העבודה שבוצעה. ביצענו מעל 50 פרויקטים במיגרציה ואופטימיזציה של תשתיות. טעויות אופייניות שאנו מתקנים: swap לא מוגדר (swap על SSD הורג את חיי התא), מגבלות ברירת מחדל (המובילות לשגיאות 'Too many open files'), רמת RAID שגויה (RAID 5 על SSD נותן מהירות כתיבה ירודה), חוסר ניטור (בעיות מתגלות רק בעת תקלה). הזמן ביקורת לשרת שלך — נזהה צווארי בקבוק ונציע תצורה אופטימלית. צור קשר לייעוץ.







