http://qs321.pair.com?node_id=11121973

choroba has asked for the wisdom of the Perl Monks concerning the following question:

I'm running two versions of my site at e-choroba.eu: there are two plackup processes, one runs the bare plackup, while the second one runs
plackup --enable-ssl --ssl-key-file=domain.key --ssl-cert-file=domain. +crt app.psgi &> https-log

The problem is the plackup that servers https is quite unstable. I often find the https version not responding, and when I log to the server, I discover one of the two following situations:

  1. The ssl plackup is down; the log file contains "Out of memory!" as the last line. I don't have much memory on the server, but normally, the process doesn't take more than 2% of the available memory.
  2. The ssl plackup is running, but when I do
    strace -fp <ssl-plackup-pid>
    I only see
    read(5,
    while normally, when everything works, it shows
    accept(4,
Any ideas what's wrong?

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

Replies are listed 'Best First'.
Re: plackup failures under https
by kikuchiyo (Hermit) on Sep 21, 2020 at 00:03 UTC

    Net::SSLeay might be the culprit: at $work we've found that earlier versions leak memory, basically every SSL connection to the service increased memory consumption by a few kBs. Since we've upgraded to the latest version of the module, the memory leak disappeared.

    By the way, you should consider installing some kind of monitoring for your servers, that's how we've noticed the issue before it caused any trouble.

      Thank you. I had 1.81 installed, trying now with 1.88.

      map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
      which monitoring system do you suggest?

        Sorry, I haven't noticed your post.

        We used munin when the memory leak issue I've mentioned was found. It has a plugin to show the memory consumption of docker containers, which was useful to find which of our dockerised services was the culprit for the leak.

        More recently our sysadmins have moved on to Prometheus/Grafana, the justification being that munin uses a lot of resources on the hosts.