Sobes.tech
Middle

Nginx менен иштөө учурунда 1024дөн ашык байланыш болсо кандай аракет кылуу керек?

sobes.tech AI

AIден жооп

Бул файл дескрипторлорунун санын чектөө жөнүндө көрсөтүү.

Чечимдер:

  1. Nginx конфигурациясында worker_connections көбөйтүү:

    // Бир worker процесстин максималдуу байланыш санын көбөйтүү
    events {
        worker_connections 4096; // же андан көп, муктаждыкка жана ресурстарга жараша
    }
    
  2. Операциялык тутум деңгээлинде ачылган файлдардын чектөөсүн көбөйтүү:

    • Учурдагы сессия үчүн:
      # убактылуу ачылган файлдардын чектөөсүн көбөйтүү
      ulimit -n 65536
      
    • Бардык системага (туруктуу): /etc/security/limits.conf файлын түзөтүңүз. Төмөнкү саптарды кошуңуз:
      # Колдонуучу боюнча чектөөлөр
      nginx soft nofile 65536
      nginx hard nofile 65536
      
      # Алтернативдүү, бардык колдонуучулар үчүн
      # * soft nofile 65536
      # * hard nofile 65536
      
      (nginx дегенди башка колдонуучу атына алмаштырыңыз, эгер башка болсо.) Жүйөнү кайра жүктөө же кайра логин кылуу керек, же sysctl -p командасын иштетүү.
  3. Ядро глобалдык орнотууларын текшерүү: fs.file-max мааниси жетиштүү жогору экенине ишениңиз.

    # Учурдагы маанини текшерүү
    cat /proc/sys/fs/file-max
    # Жаңы маанини убактылуу коюу
    # sudo sysctl -w fs.file-max=100000
    # Туруктуу коюу - `/etc/sysctl.conf` файлын түзөтүңүз
    # Жол кошуңуз: fs.file-max = 100000
    # Өзгөртүүлөрдү колдонуу
    # sudo sysctl -p
    
  4. Nginx колдонуучусунун ушул файлдарды ачуу укугу бар экенине ишениңиз: Nginx кайсы колдонуучу менен иштеп жатканын жана ага коюлган чектөөлөрдү текшерүү. Бул 2-чи пунктка байланыштуу.

  5. Nginx кайра жүктөө: Конфигурацияга жана системдик лимиттерге өзгөртүүлөр киргизилгандан кийин, аны кайра жүктөө керек.

    # Nginx кайра жүктөө
    sudo systemctl reload nginx
    # Эгер жардам бербесе
    # sudo systemctl restart nginx
    

Чечүүнүн приоритети:

  1. worker_connections текшерүү жана көбөйтүү.
  2. Nginx колдонуучусунун файл лимиттерин текшерүү жана көбөйтүү.
  3. fs.file-max глобалдык лимитин текшерүү жана көбөйтүү.
  4. Nginx кайра жүктөө.

Маанилүү: лимиттерди көбөйтүү негиздүү болушу керек жана сервердин ресурстарына ылайык болушу керек (эстутум, CPU). Өтө жогорку маанилер системанын туруксуздуулугуна алып келиши мүмкүн.