Cheap Domain Logo by AuxoDomain

راهنمای پیشرفته مدیریت و بهینه‌سازی سرورها Print

  • Tips, Server, Offer
  • 0

راهنمای پیشرفته مدیریت و بهینه‌سازی سرورها

1. تنظیم عملکرد سرور

بهینه‌سازی در سطح کرنل

  • کرنل‌های تنظیم‌شده سفارشی: لینوکس ۶.x با کنترل ازدحام BBR2

  • تغییرات TCP Stack:

    # افزایش اندازه‌های بافر حداکثر TCP
    echo 'net.core.rmem_max=4194304' >> /etc/sysctl.conf
    echo 'net.core.wmem_max=4194304' >> /etc/sysctl.conf
  • تنظیم Swappiness: مقدار ۱۰ برای سرورهای پایگاه داده

بهینه‌سازی پایگاه داده

  • خاص MySQL 8.0+:

    SET GLOBAL innodb_buffer_pool_size=12G; -- برای سرورهای با ۱۶ گیگابایت رم
    SET GLOBAL innodb_io_capacity=2000; -- برای ذخیره‌سازی SSD/NVMe
  • تنظیمات PostgreSQL 14+:

    ALTER SYSTEM SET shared_buffers = '4GB';
    ALTER SYSTEM SET effective_cache_size = '12GB';

2. تنظیمات امنیتی پیشرفته

پیاده‌سازی مدل اعتماد صفر (Zero-Trust)

  • تفکیک شبکه:

    • سرورهای فرانت‌اند در DMZ با قوانین ورودی سخت‌گیرانه

    • سرورهای پایگاه داده در VLAN خصوصی با IP‌های مجاز در لیست سفید

  • احراز هویت سرویس به سرویس:

    • TLS متقابل (mTLS) برای ارتباطات داخلی

    • SPIFFE/SPIRE برای مدیریت هویت

حفاظت در زمان اجرا:

# نصب و پیکربندی Falco برای امنیت زمان اجرا
curl -s https://falco.org/repo/falcosecurity-3672BA8F.asc | apt-key add -
echo "deb https://download.falco.org/packages/deb stable main" | tee -a /etc/apt/sources.list.d/falcosecurity.list
apt-get update && apt-get install -y falco

3. تنظیم کانتینر و ارکستراسیون

بهینه‌سازی Kubernetes

# نمونه مانیفست Kubernetes در سطح تولید
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: app
        resources:
          limits:
            cpu: "2"
            memory: "4Gi"
          requests:
            cpu: "1"
            memory: "2Gi"
      topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: kubernetes.io/hostname
        whenUnsatisfiable: ScheduleAnyway

پیکربندی شبکه خدمات (Service Mesh)

# تنظیمات بهینه Istio
istioctl install --set profile=default \
--set values.global.proxy.resources.limits.cpu=2000m \
--set values.global.proxy.resources.limits.memory=1024Mi

4. یکپارچه‌سازی خط لوله CI/CD

گردش کار GitOps

// نمونه Jenkinsfile برای استقرار بدون وقفه
pipeline {
    stages {
        stage('Deploy') {
            steps {
                sh 'kubectl apply -f k8s/ --prune -l app=myapp'
                timeout(time: 15, unit: 'MINUTES') {
                    input message: 'تأیید تولید؟'
                }
            }
        }
    }
    post {
        failure {
            slackSend channel: '#alerts', message: "ساخت شماره ${currentBuild.number} شکست خورد!"
        }
    }
}

5. استقرار پشته نظارتی

مجموعه مشاهداتی

# پشته Prometheus + Grafana + Loki
version: '3'
services:
  prometheus:
    image: prom/prometheus:v2.40.0
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
  grafana:
    image: grafana/grafana:9.3.2
    ports:
      - "3000:3000"

جمع‌آوری معیارهای سفارشی

# نمونه صادرکننده Python برای معیارهای تجاری سفارشی
from prometheus_client import start_http_server, Gauge
import random

REQUEST_LATENCY = Gauge('app_request_latency', 'زمان تأخیر برنامه به میلی‌ثانیه')

if __name__ == '__main__':
    start_http_server(8000)
    while True:
        REQUEST_LATENCY.set(random.randint(1, 100))

6. پروتکل‌های بازیابی از فاجعه

آزمون خودکار failover

# اسکریپت مهندسی هرج و مرج
#!/bin/bash
# خاتمه تصادفی گره‌ها برای تست پایداری
NODES=$(kubectl get nodes -o jsonpath='{.items[*].metadata.name}')
TARGET=$(shuf -e -n1 $NODES)
echo "در حال خاتمه گره $TARGET"
gcloud compute instances delete $TARGET --zone=us-central1-a

7. توسعه‌های Edge Computing

قوانین پیشرفته CDN

// اسکریپت Cloudflare Workers برای منطق edge
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url)
  if (url.pathname.startsWith('/api/')) {
    return new Response('مسدود شده در لبه', { status: 403 })
  }
  return fetch(request)
}

8. استراتژی‌های بهینه‌سازی هزینه

اتوماسیون Spot Instance

# پیکربندی AWS Spot Fleet
resource "aws_spot_fleet_request" "workers" {
  iam_fleet_role  = "arn:aws:iam::123456789012:role/spot-fleet"
  target_capacity = 10
  allocation_strategy = "diversified"

  launch_specification {
    instance_type = "m5.large"
    ami           = "ami-123456"
    spot_price    = "0.05"
  }
}
Q
آیا این پاسخ به شما کمک کرد؟
Back