WorkerKiller

Kebocoran dan fragmentasi sumber daya dan / atau memori adalah masalah umum di semua bahasa pemrograman. Tidak masalah apakah ada pengumpul sampah di sana atau tidak, bahasa yang dikompilasi atau diinterpretasikan. Ruby tidak terkecuali, dan hari ini kita akan berbicara sedikit tentang masalah ini, opsi untuk menyelesaikannya, dan bahkan menulis masalah kita sendiri.





Masalahnya bisa dan memang muncul ketika kita memiliki proses yang berjalan lama dan melakukan banyak pekerjaan berbeda. Sebagian besar masalah ini terkait dengan kesalahan dalam kode, di mana kode terus menjalankan fungsi bisnisnya dengan benar. Mereka tidak selalu mudah ditemukan dan diperbaiki. Tetapi fragmentasi memori menunggu kita sedikit dari sisi lain, dan bahkan kode yang benar secara bertahap dapat mengakumulasi memori yang terfragmentasi. Dalam dunia Rails, proses yang termasuk dalam kategori "bermain lama" sebenarnya adalah server web dan berbagai latar belakang manajemen / tugas tertunda -β€Š DelayedJob



, Sidekiq



dll. Itu tentang mereka dan kemudian kita akan membicarakannya ..





Server web

β€œβ€ . /, (puma, unicorn), Phusion Passenger . β€œβ€ -, Rails-. , :





, β€œβ€ β€Šβ€”β€Š . β€Šβ€”β€Š β€Šβ€”β€Š. β€Šβ€”β€Š Passenger Enterprise .





 

- , DelayedJob



, ActiveJob



( β€œ ” ). β€Šβ€”β€Š β€Šβ€”β€Š . Sidekiq



, DelayedJob



!





- DelayedJob



WorkerKiller



β€Šβ€”β€Š!





?

middleware



, , .





CPU, . β€Šβ€”β€Š , , , β€œ"β€Šβ€”β€Š Limiter



.





β€Šβ€”β€Š Killer



. unicornβ€Š



β€”β€Š SIGTERM. β€Šβ€”β€Š , Passenger Master Process . , , β€œinflight” . , :





passenger-config detach-process <PID>
      
      



, 500 , 100. Passenger β€Šβ€”β€Š -, , .





!





-, , , - DelayedJob



. , , .





!









? WorkerKiller ? , . β€Šβ€”β€Š , , , . β€Šβ€”β€Š , .





Pembalut luka pada luka tembak
Band-Aid on a bullet wound





, :





  • Giltab Unicorn killer





  • Gitlab Sidekiq killer





  • Killer puma





  • Cara menghitung memori di Linux β€Š- hanya untuk pria sejati





  • Pembunuh unicorn β€Š- dia yang pertama!





  • Cara men-debug kebocoran Ruby








All Articles