Udv!
A segitsegeteket/velemenyeteket szeretnem kerni.
Nem fer a fejembe, hogy hogy lehetseges hogy a tmpfs-el mountolt directory megis lathato az iotop-ban meghozza nem 0-as DISK WRITE ertekkel.
Tudtommal ott csak a tenyleges disk-re irasoknak kene megjelennie.
Bovebben:
Docker-ben fut a Unifi-nak a Unifi Network Controller software-e. A containerben fut egy java es egy mongodb process amik megjelennek az iotop-ban, pedig szerintem nem kene nekik.
Setup:
pi@raspberrypi:~ $ cat /sys/firmware/devicetree/base/model Raspberry Pi 2 Model B Rev 1.1 pi@raspberrypi:~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@raspberrypi:~ $ cat unifi/docker-compose.yml version: '2' services: unifi: image: ryansch/unifi-rpi:latest container_name: unifi restart: always network_mode: host # Uncomment the following to set java options # environment: # JAVA_OPTS: -Xmx512M volumes: # Unifi v5.0.7 creates all of these directories (some remain empty) - config:/var/lib/unifi - run:/usr/lib/unifi/run - run2:/run/unifi - work:/usr/lib/unifi/work tmpfs: - /var/log/unifi:size=10M - /usr/lib/unifi/logs:size=10M volumes: config: driver: local run: driver: local run2: driver: local work: driver: local
Problema:
pi@raspberrypi:~ $ sudo iotop -aok
Total DISK READ: 0.00 K/s | Total DISK WRITE: 3.42 K/s Current DISK READ: 0.00 K/s | Current DISK WRITE: 10.26 K/s PID PRIO USER DISK READ DISK WRITE> SWAPIN IO COMMAND 686 be/4 root 280.00 K 90708.00 K 0.00 % 0.00 % java -Xmx51~e.jar start 726 be/4 root 0.00 K 56236.00 K 0.00 % 0.00 % bin/mongod ~p 127.0.0.1 81 be/3 root 0.00 K 28424.00 K 0.00 % 0.02 % [jbd2/mmcblk0p2-] 423 be/4 root 0.00 K 1324.00 K 0.00 % 0.00 % dhcpcd -q -w 446 be/4 root 124.00 K 0.00 K 0.00 % 0.00 % dockerd -H ~ainerd.sock 647 be/4 root 100.00 K 0.00 K 0.00 % 0.00 % containerd-~ainerd.sock 18784 be/4 root 0.00 K 0.00 K 0.00 % 0.00 % [kworker/u8~ts_unbound]
java process [686]:
pi@raspberrypi:~ $ sudo lsof -p 686 | grep -e "[[:digit:]]\+w" java 686 root 1w FIFO 0,11 0t0 15655 pipe java 686 root 2w FIFO 0,11 0t0 15656 pipe java 686 root 152w REG 179,2 43989 396382 /var/lib/unifi/logs/server.log java 686 root 165w FIFO 0,11 0t0 15025 pipe java 686 root 169w FIFO 0,11 0t0 15027 pipe java 686 root 173w FIFO 0,11 0t0 15687 pipe java 686 root 180w FIFO 0,11 0t0 17995 pipe java 686 root 199w FIFO 0,11 0t0 15297 pipe java 686 root 202w FIFO 0,11 0t0 15298 pipe java 686 root 205w REG 0,50 5069728 4 /usr/lib/unifi/logs/remote/192.168.178.44_f492bf298e9b.log java 686 root 209w FIFO 0,11 0t0 18019 pipe java 686 root 212w FIFO 0,11 0t0 18020 pipe java 686 root 215w FIFO 0,11 0t0 18021 pipe java 686 root 220w FIFO 0,11 0t0 18023 pipe java 686 root 223w FIFO 0,11 0t0 18024 pipe java 686 root 226w FIFO 0,11 0t0 18025 pipe java 686 root 230w FIFO 0,11 0t0 18026 pipe java 686 root 233w FIFO 0,11 0t0 18027 pipe pi@raspberrypi:~ $ sudo strace -y -f -p 686 -e trace=write strace: Process 686 attached with 76 threads [pid 791] write(199<pipe:[15297]>, "\1", 1) = 1 [pid 17031] write(228<socket:[144945]>, "HTTP/1.1 100 \r\n\r\n", 17) = 17 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(228<socket:[144945]>, "HTTP/1.1 200 \r\nContent-Type: app"..., 234) = 234 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(199<pipe:[15297]>, "\1", 1) = 1 [pid 791] write(202<pipe:[15298]>, "\1", 1) = 1 [pid 17031] write(240<socket:[144946]>, "HTTP/1.1 100 \r\n\r\n", 17) = 17 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(240<socket:[144946]>, "HTTP/1.1 200 \r\nContent-Type: app"..., 234) = 234 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(202<pipe:[15298]>, "\1", 1) = 1 [pid 791] write(199<pipe:[15297]>, "\1", 1) = 1 [pid 17031] write(228<socket:[144954]>, "HTTP/1.1 100 \r\n\r\n", 17) = 17 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(228<socket:[144954]>, "HTTP/1.1 200 \r\nContent-Type: app"..., 234) = 234 [pid 17031] write(165<pipe:[15025]>, "\1", 1) = 1 [pid 17031] write(199<pipe:[15297]>, "\1", 1) = 1 strace: Process 19591 attached strace: Process 19592 attached [pid 19591] +++ exited with 0 +++ [pid 19592] +++ exited with 0 +++ [pid 791] write(202<pipe:[15298]>, "\1", 1) = 1 [pid 771] write(205</usr/lib/unifi/logs/remote/192.168.178.44_f492bf298e9b.log>, "2021-04-04T09:49:02,096 <14>Apr "..., 343) = 343 [pid 17031] write(235<socket:[144960]>, "HTTP/1.1 200 \r\nContent-Type: app"..., 220) = 220 mongod process [726]: pi@raspberrypi:~ $ sudo lsof -p 726 | grep -e "[[:digit:]]\+w" mongod 726 root 1w REG 0,50 8936 2 /usr/lib/unifi/logs/mongod.log mongod 726 root 2w REG 0,50 8936 2 /usr/lib/unifi/logs/mongod.log df kimenetek: pi@raspberrypi:~ $ df | ts Apr 04 07:40:05 Filesystem 1K-blocks Used Available Use% Mounted on Apr 04 07:40:05 /dev/root 29765200 2524880 25998324 9% / Apr 04 07:40:05 devtmpfs 465284 0 465284 0% /dev Apr 04 07:40:05 tmpfs 498564 0 498564 0% /dev/shm Apr 04 07:40:05 tmpfs 498564 6684 491880 2% /run Apr 04 07:40:05 tmpfs 5120 4 5116 1% /run/lock Apr 04 07:40:05 tmpfs 498564 0 498564 0% /sys/fs/cgroup Apr 04 07:40:05 tmpfs 51200 0 51200 0% /tmp Apr 04 07:40:05 tmpfs 51200 412 50788 1% /var/log Apr 04 07:40:05 tmpfs 51200 0 51200 0% /var/tmp Apr 04 07:40:05 /dev/mmcblk0p1 258095 48782 209314 19% /boot Apr 04 07:40:05 overlay 29765200 2524880 25998324 9% /var/lib/docker/overlay2/14dee76edfe59897588ce295c4b2be999a37047158110c58f1393f0e62305938/merged Apr 04 07:40:05 shm 65536 0 65536 0% /var/lib/docker/containers/5ebf852b49e634ccaa709b3e4e8682f3ce083f9e8df7367775c99de41b9a4306/mounts/shm Apr 04 07:40:05 tmpfs 99712 0 99712 0% /run/user/1000 pi@raspberrypi:~ $ docker exec -it 5ebf852b49e6 df | ts Apr 04 07:40:58 Filesystem 1K-blocks Used Available Use% Mounted on Apr 04 07:40:58 overlay 29765200 2524880 25998324 9% / Apr 04 07:40:58 tmpfs 65536 0 65536 0% /dev Apr 04 07:40:58 tmpfs 498564 0 498564 0% /sys/fs/cgroup Apr 04 07:40:58 /dev/root 29765200 2524880 25998324 9% /run/unifi Apr 04 07:40:58 shm 65536 0 65536 0% /dev/shm Apr 04 07:40:58 tmpfs 10240 0 10240 0% /var/log/unifi Apr 04 07:40:58 tmpfs 10240 4372 5868 43% /usr/lib/unifi/logs Apr 04 07:40:58 tmpfs 498564 0 498564 0% /proc/asound Apr 04 07:40:58 tmpfs 498564 0 498564 0% /sys/firmware
Ket dolog nem hagy nyugodni:
1, Miert vannak ezek a processek az iotop-ban?
2, Mi tortenik ha a size limit-tel mount-olt tmpfs megtelik? (Az vilagos, hogy nem tud tobb logot kiirni a service, de lesz hiba? Lehal a rendszer, vagy minden megy tovabb?)
- 205 megtekintés
Hozzászólások
ha jol latom az iotop-ban akkor az egyes processek statjabol szummazza ossze a read/write ertekeket, ott meg nincs lebontva hogy milyen device.
ha megtelik a tmpfs akkor diskfull, szvsz ugyanaz mintha teli lesz a root. a programja valogatja ki hogy reagal ra.
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
ha jol latom az iotop-ban akkor az egyes processek statjabol szummazza ossze a read/write ertekeket, ott meg nincs lebontva hogy milyen device.
Ezert az lsof meg a strace, hogy lassam, hogy hova irnak a processek.
- A hozzászóláshoz be kell jelentkezni
iotopot straceld, es akkor latod honnan szedi az infokat.
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
https://www.kernel.org/doc/html/latest/filesystems/tmpfs.html
tmpfs puts everything into the kernel internal caches and grows and shrinks to accommodate the files it contains and is able to swap unneeded pages out to swap space. It has maximum size limits which can be adjusted on the fly via ‘mount -o remount …’
- A hozzászóláshoz be kell jelentkezni
Elfelejtettem irni, de nincs swap.
- A hozzászóláshoz be kell jelentkezni
pedig nem volt hülye aki kitalálta :)
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
Azert nincs swap es azert mount-oltam a logokat a tmpfs-be, mert ez egy RPI SD kartyaval es nem akartam a sok irassal hamar kinyirni a kartyat.
Ezert is az agonizalas a DISK WRITE-ok miatt. Ha tortenik egy reboot es elvesznek a logok nem megyek a falnak, szoval ez nem gond.
- A hozzászóláshoz be kell jelentkezni
Ja, ha szándékosan tökönbököd magad, akkor ne csodálkozz...
- A hozzászóláshoz be kell jelentkezni