Yavaş ssh giriş - org.freedesktop.login1 aktivasyonu zaman aşımına uğradı


39

Sunucularımdan birinde SSH girişlerinde gerçekten gecikme olduğunu fark ettim.

Ssh -vvv seçeneklerini kullanarak bağlanma gecikme, debug1: Entering interactive session.

bağlantının çıkarılması:

debug1: Authentication succeeded (publickey).
Authenticated to IP_REDACTED ([IP_REDACTED]:22).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1

Burada açıklanan yöntemi kullanarak strace çıktı oluşturdum ve 14:09:53.676004 ppoll([{fd=5, events=POLLIN}], 1, {24, 999645000}, NULL, 8) = 1 ([{fd=5, revents=POLLIN}], left {0, 0}) <25.020764>25 saniye süren çizgiyi fark ettim .

strace çıktısının özü:

14:09:53.675567 clock_gettime(CLOCK_MONOTONIC, {4662549, 999741404}) = 0 <0.000024>
14:09:53.675651 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"l\4\1\1\n\0\0\0\2\0\0\0\215\0\0\0\1\1o\0\25\0\0\0", 24}], msg_controll
en=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24 <0.000024>
14:09:53.675744 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0"..., 146}], msg_controllen
=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 146 <0.000025>
14:09:53.675842 recvmsg(5, 0x7ffe0ff1dfa0, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailab
le) <0.000023>
14:09:53.675925 clock_gettime(CLOCK_MONOTONIC, {4662550, 96075}) = 0 <0.000024>
14:09:53.676004 ppoll([{fd=5, events=POLLIN}], 1, {24, 999645000}, NULL, 8) = 1 ([{fd=5, revents=POLLIN}], left {0, 0}) <25.020764>
14:10:18.696865 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"l\3\1\0013\0\0\0\3\0\0\0m\0\0\0\6\1s\0\5\0\0\0", 24}], msg_controllen=0,     msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24 <0.000017>
14:10:18.696944 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{":1.10\0\0\0\4\1s\0#\0\0\0org.freedesktop."..., 155}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 155 <0.000018>

Doğrulama kayıtlarında ilgili zamanda bir giriş olduğunu fark ettim:

Jul 21 14:10:18 click sshd[8165]: pam_systemd(sshd:session): Failed to create session: Activation of org.freedesktop.login1 timed out

Bu konuda ne araştırmaya çalıştığını ve bu sunucuda neden 25 saniye sürdüğünü yeterince bilmemek.

journalctl -u systemd-logindkomut gösterileri

Jul 20 11:33:06 click systemd-logind[19415]: Failed to abandon session scope: Transport endpoint is not connected
Jul 21 05:04:54 myhost systemd[1]: Started Login Service.
Jul 21 12:15:30 myhost systemd[1]: Started Login Service.
Jul 21 12:17:04 myhost systemd[1]: Started Login Service.
Jul 21 12:49:55 myhost systemd[1]: Started Login Service.
Jul 21 13:57:05 myhost systemd[1]: Started Login Service.
Jul 21 13:58:49 myhost systemd[1]: Started Login Service.
Jul 21 14:01:55 myhost systemd[1]: Started Login Service.
Jul 21 14:08:32 myhost systemd[1]: Started Login Service.
Jul 21 14:09:53 myhost systemd[1]: Started Login Service.
Jul 21 14:19:08 myhost systemd[1]: Started Login Service.
Jul 21 14:21:26 myhost systemd[1]: Started Login Service.
Jul 21 14:22:37 myhost systemd[1]: Started Login Service.
Jul 21 14:25:20 myhost systemd[1]: Started Login Service.
Jul 21 14:30:27 myhost systemd[1]: Started Login Service.
Jul 21 15:02:56 myhost systemd[1]: Started Login Service.

Komutu vermek systemctl restart systemd-logind.serviceonu düzeltir (şimdilik).

Nedir Activation of org.freedesktop.login1o söz? Gelecekte logind uygulamasını yeniden başlatmamı engelleyebileceğim bir yol var mı? Zaman içinde bu sorunu yönettiğim sunucuların geri kalanında göreceğimi bekliyorum.

Bunun başka bir sunucuda gerçekleşmeye başladığını fark ettim.

$ sudo service systemd-logind status

● systemd-logind.service - Login Service
   Loaded: loaded (/lib/systemd/system/systemd-logind.service; static)
   Active: active (running) since Tue 2015-06-16 14:10:57 BST; 1 months 12 days ago
     Docs: man:systemd-logind.service(8)
           man:logind.conf(5)
           http://www.freedesktop.org/wiki/Software/systemd/logind
           http://www.freedesktop.org/wiki/Software/systemd/multiseat
 Main PID: 1701 (systemd-logind)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-logind.service
           └─1701 /lib/systemd/systemd-logind

Jul 28 13:16:21 myhost systemd[1]: Started Login Service.
Jul 28 13:16:47 myhost systemd[1]: Started Login Service.
Jul 28 16:09:23 myhost systemd[1]: Started Login Service.
Jul 28 16:09:49 myhost systemd[1]: Started Login Service.
Jul 28 16:10:15 myhost systemd[1]: Started Login Service.
Jul 28 16:10:41 myhost systemd[1]: Started Login Service.
Jul 28 22:50:19 myhost systemd[1]: Started Login Service.
Jul 29 05:00:15 myhost systemd[1]: Started Login Service.
Jul 29 11:00:20 myhost systemd[1]: Started Login Service.
Jul 29 11:09:56 myhost systemd[1]: Started Login Service.

EDIT - genişletilmiş journalctlçıktı.

EDIT2 - başka bir sunucuda başladığında fark edildiğinde yorumlarda önerildiği gibi systemd logind durumunu ekledi.

GÜNCELLEME - Bu, Jessie sunucularımın geri kalanında olmaya başlıyor. Bunu yaşayan sadece ben miyim? Systemd-logind komutunu yeniden başlatmaktan başka bir düzeltme olmalı, herhangi birinin düşüncesi var mı?

Bu 770135'te bir Debian hata raporu var .


systemcts status systemd-logindNeyin yanlış olduğunu (çıktıktan, başarısız olduysa) görmek için yeniden başlatmadan önceki çıktısını görmek yararlı olacaktır . ppollsadece sistemd'den yanıt bekleyen bir arabulucu, bu yüzden onu suçlayamazsın.
Jakuje

hiçbir systemctsemir yok
Alasdair

üzgünüm. systemctlKursu
Jakuje

Kastettiğin şeyin bu olduğunu düşündüm ama emin olmak istedim. Bu, journalctl -u systemd-logind
emirdeki

günlüğü göstermeli, aynı zamanda hizmetin kendisinin durumunu da göstermelidir.
Jakuje

Yanıtlar:


48

Bu, dbus yeniden başlatıldığında gerçekleşir, ancak systemd-logind yeniden başlatılmaz. Sadece aşağıdakileri yapın:

systemctl restart systemd-logind

Çözüm buradan: https://major.io/2015/07/27/very-slow-ssh-logins-on-fedora-22/


1
Zaten söz konusu olduğunda, hata raporu hâlâ çözülemedi, ancak tekrar yerleştirdiğiniz için teşekkürler.
Alasdair

Not: Bu normal lightdm selamlayıcısında bir "giriş döngüsü" de verebilir; aynı çözüm geçerlidir.
16'da

1

Kullanımı:

systemctl restart systemd-logind

sorunu sadece geçici olarak çözer.

Çözümlerden biri, tüm .scopedosyaları burada belirtildiği gibi bir cron işinden kaldırmaktır .

* 2,14 * * * root /bin/rm -f /run/systemd/system/*.scope

İlgili systemd hata raporu şurada: Kapsam birimlerinin sızıntısı "systemctl list-unit-files" 'ı yavaşlatıyor ve girişleri geciktiriyor .

Aslında bir dbus böcek gibi görünüyor: unix fd uçak içi kırık sayma olduğu dbus sürümü 1.11.10 çözülmesi

Bu hatayı kalıcı olarak düzeltmek için, dbus'ın bu sürümünün dağıtımınızda görünmesini beklemeniz yeterli. Şimdilik Debian Stretch dbus 1.10.18'de, Ubuntu 17.04 (Zesty) 1.10.10'da, CentOS 7 dbus 1.6.12'de.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.