Skip to Content.
Sympa Menu

perfsonar-user - [perfsonar-user] Testpoint container for rpi4

Subject: perfSONAR User Q&A and Other Discussion

List archive

[perfsonar-user] Testpoint container for rpi4


Chronological Thread 
  • From: Luke Whitworth <>
  • To: "" <>
  • Subject: [perfsonar-user] Testpoint container for rpi4
  • Date: Tue, 20 Jun 2023 12:29:19 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cranfield.ac.uk; dmarc=pass action=none header.from=cranfield.ac.uk; dkim=pass header.d=cranfield.ac.uk; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Mxi9aqh7KDgks/nVmenzZVq6FShDQedoI8sH82Pc17U=; b=FT2m2z6WQub+g9AJjUkrhULYeg8DsMlYBmBm3ZkgQVhAWW+meKeFsFKe24dCfHRCitrGTOTrE6q/haeGtnmRMjKvYRMUzlbccIieqz8ZvJ9MC687M5Z2PDxPtcMq0mjdtRL5vmlT7dUQIyYKwLiguHUV5aai6bctkHhxH3ZPKR09DJ0dH2aNxLZsgP8KdFRNvWIUwHe2KXxXUeMaeuBZTMp/iBipmnjAMRX8d4tNgLEFz9y1SlZOzcOycIGMisKVkAEnPe/7iAiTuR613BgbYP1V5w2p5d94a8IRub4/0Iq3VuPEHwflzHSxQZPqdBH95fcVNbgTCW5hqp1iQr1e7g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ByPKXT8sdL0BHrsTK2M+TDBDTFeo8SNuJq+7V5/Q1LFKNH77vUVsGoo1fBZflHYFpyXMZGD2ejDO3qHr4b3ek50ka8LRyJBwRxLaTerPC9Bxy76Nwx7omPZDRiK4or17yCmEOgAXYiIm5edjmdg0jm2B1DvA5P8xn7N9qXkIbBshin5oHZmc8toWN3cCdo72aaB5mb06sS7cgWFCAwFWHp27209u492MvFl3Kidoeb+YN4Vw5DjZW7Cn76tUwGr4lKeeI7jSCZVW/8dKX1SeDlub1h8+jd7OUcDJHDEgk7ZiyGhLZB1Oapufh6TipO6Gk3VgRS+OWmwuSRK2lnwW1g==

Hi all,

 

We run approx. 15 testpoints on site on Raspberry Pi 4’s with 2GB RAM on them.  Biggest issue we’ve had historically was SD card burnout or, once we got past that by using overlayfs, RAM exhaustion.  With the release of ver 5 we hit the ram constraint even harder, crashing the Pi’s a lot, and have been forced to reconsider how we do this with the Pi’s.

 

To that end I started to look at whether we could containerise the testpoint for the Pi’s, allowing us to keep OS level stuff writing leisurely to the SD card but to have testpoint related things going to ramdisk.  I’ve managed to achieve a small amount of success so felt that I’d share for others who might find it useful.

 

Warning:  This is no doubt a huge mess, there’s probably much better ways to do this and running the container throws errors repeatedly such as:

 

--- Logging error ---

Traceback (most recent call last):

  File "/usr/lib/python3.8/logging/handlers.py", line 934, in emit

    self.socket.send(msg)

OSError: [Errno 9] Bad file descriptor

 

During handling of the above exception, another exception occurred:

 

Traceback (most recent call last):

  File "/usr/lib/python3.8/logging/handlers.py", line 855, in _connect_unixsocket

    self.socket.connect(address)

FileNotFoundError: [Errno 2] No such file or directory

 

During handling of the above exception, another exception occurred:

 

Traceback (most recent call last):

  File "/usr/lib/python3.8/logging/handlers.py", line 937, in emit

    self._connect_unixsocket(self.address)

  File "/usr/lib/python3.8/logging/handlers.py", line 866, in _connect_unixsocket

    self.socket.connect(address)

FileNotFoundError: [Errno 2] No such file or directory

Call stack:

  File "/usr/lib/pscheduler/daemons/archiver", line 1134, in <module>

    while main_program():

 File "/usr/lib/pscheduler/daemons/archiver", line 1049, in main_program

    log.info("Warm boot; restarting.")

  File "/usr/lib/python3/dist-packages/pscheduler/log.py", line 357, in info

    self.__log(self.logger, INFO, format, *args)

  File "/usr/lib/python3/dist-packages/pscheduler/log.py", line 343, in __log

    logger.log(level, chunk)

Message: 'Warm boot; restarting.'

Arguments: ()

 

That said, the tests are running and logging off to our opensearch instance, and the host has available ram still:

 

The docker build file can be found at:  https://github.com/lukewhitworth/perfsonar-tp-docker, I’ve built this and published it to our internal repo for docker images for the Pi’s to pull it down.

 

Then what I’ve done is I’ve edited the docker daemon file on the Pi (/etc/docker/daemon.json) to:

 

{

  "data-root": "/docker"

}

 

And I’ve got a tmpfs at /docker/volumes, e.g. something like (gotta persist this to fstab still):

  sudo mount -t tmpfs -o rw,size=1280M tmpfs /docker/volumes

 

Then it’s just:

docker run -d --name testpoint --network host our-internal-docker-repo/perfsonar-testpoint

 

Like I say, very early days on this, at the point where I’m going to leave it running for a few days and hope that the host stays up and the tests continue….we’ll see!

 

Cheers,

 

Luke

 




Archive powered by MHonArc 2.6.24.

Top of Page