Apa itu proses "detik"?

19

Saya ingin tahu secdproses apa yang dilakukan di bawah OSX Yosemite. Saya cukup yakin saya telah melihat proses ini berjalan di versi MacOS sebelumnya, tapi saya tidak ingat itu melahap semua memori yang tersedia dengan sangat berani ...

Saya memiliki tiga komputer yang menjalankan Yosemite, masing-masing dengan konfigurasi yang berbeda. Ketiganya sudah bangun selama tiga hari hingga satu minggu. Berikut ini adalah ringkasan dari apa yang secdtelah dicapai:

  • Pada MacBookAir 2011 dengan memori 4GB, 700MB dialokasikan untuk secd
  • Pada iMac 2008 dengan memori 6GB, 2GB dialokasikan untuk secd
  • Pada iMac 2011 dengan memori 12GB, dialokasikan untuk 4GB secd

Pada ketiga komputer secdadalah proses terbesar dalam memori (lebih besar dari kernel task) dan saya menduga itu memainkan peran dalam perlambatan yang baru-baru ini saya alami dengan kedatangan Yosemite. Saya tahu pasti bahwa proses mengembang dalam memori ke ukuran tak terkendali dan membebaskan memori ketika saya membutuhkannya di tempat lain. Satu-satunya masalah adalah tidak cepat dalam membebaskan memori dan sebagian besar kinerja waktu menderita sebelum proses menyadari itu harus mundur.

Pencarian saya di web tidak sampai pada kesimpulan yang solid tentang apa prosesnya, dan mengapa harus begitu besar. Saya kira saya bukan satu-satunya yang mengalami ini. Tip apa pun dihargai.

Seperti yang disarankan di bawah secdini ada hubungannya dengan Keychain Apple. Berikut adalah file dan port yang proses tetap terbuka saat aktif (di MacBookAir):

/
/usr/libexec/secd
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-shm
/usr/share/icu/icudt53l.dat
/usr/lib/dyld
/private/var/run/diagnosticd/dyld_shared_cache_x86_64
/dev/null
/dev/null
/dev/null
count=2, state=0x2
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-shm
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal
/dev/random
/dev/random
/private/var/folders/z_/806bzc396cxgp4s0q17tpfwc0000gn/T/etilqs_y5BDgkbGkBV9ybF
/private/var/folders/z_/806bzc396cxgp4s0q17tpfwc0000gn/T/etilqs_Aw6Q7JhPlil3QNX
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db
/Users/.../Library/Keychains/7285EFCF-9AF6-53DD-BE44-DA1F59F96620/keychain-2.db-wal

Apa yang tidak jelas adalah apa yang dilakukan proses untuk semua memori yang ditempatinya, dan mengapa ia mengembang sangat banyak.

retrography
sumber
2
Ingatanmu benar. secdberjalan pada Mavericks. Pada analisis cepat, daemon ini tidak didokumentasikan, ini buruk, ini mungkin sepotong crapware. Daemon ini ada di /usr/libexec/secd.
dan
@danielAzuelos Apakah ini menunjukkan perilaku kanker yang sama pada Mavericks?
retrography
2
Menurut Plist, SECD digunakan untuk mengelola cloud keychain bukan yang lokal.
Ruskes
2
Baru ditemukan: Tanpa secdberjalan, Pesan meminta saya kata sandi setiap waktu.
interestinglythere
1
→ Mah: di Maveriskc, secdmemiliki VSZ = 2,4 GB, dan RSS = 3 MB. secdberlari selama 84 detik pada sistem yang aktif dan berjalan sejak 5 hari.
dan

Jawaban:

20

Jika tidak jelas, ini hanya dugaan. Tapi mudah-mudahan ini memberi Anda beberapa petunjuk.

Pertama, inilah yang dapat Anda ketahui hanya dari nama programnya. Jika Anda menjalankan perintah /bin/ls /usr/libexec | sort -f | egrep '.*d$'(ini mencetak semua file dalam /usr/libexecberakhiran d), Anda akan menemukan ftpd, hidd, networkd, systemstatsd, dan banyak program berakhir di d. "D" adalah singkatan dari "daemon", yang pada dasarnya berarti proses pembantu yang selalu berjalan di latar belakang. The secsangat mungkin singkatan dari "keamanan". Begitu secdjuga dengan "daemon keamanan". Yang masuk akal karena Anda mengatakan sepertinya itu berfungsi dengan barang-barang gantungan kunci.

Apa gunanya daemon? Beberapa daemon tetap berjalan untuk melakukan tugas yang sedang berjalan. hidd("daemon perangkat antarmuka manusia"), misalnya, adalah proses yang bertanggung jawab untuk menangani input mouse / keyboard / trackpad. Beberapa daemon lain melakukan beberapa tugas umum yang dibutuhkan oleh banyak program lain. Aplikasi dapat dengan mudah memberi tahu daemon untuk melakukan sesuatu alih-alih memiliki kode untuk melakukannya sendiri. Jadi secdmungkin melakukan hal seperti ini, tetapi terkait dengan gantungan kunci.

Tapi apa sebenarnya? Sepertinya itu tidak benar-benar menangani penggunaan normal dari keychain, karena saya masih bisa menggunakan keychain setelah saya menonaktifkan secdLaunchAgent.

Memeriksa LaunchAgent memberi kita petunjuk:

Sepertinya detik bertanggung jawab untuk menyinkronkan gantungan kunci dengan iCloud?

Jadi apa yang harus kamu lakukan? Coba satu atau lebih dari ini:

  1. Jika Anda tidak memerlukan sinkronisasi gantungan kunci iCloud, matikan di preferensi iCloud.
  2. Gunakan launchctluntuk menonaktifkan secd jika tampaknya tidak mempengaruhi apa pun.
  3. Jika Anda memerlukan sinkronisasi gantungan kunci iCloud, lihat apakah Anda memiliki banyak item gantungan kunci, dan hapus item yang tidak Anda butuhkan.
  4. Mungkin membangun kembali gantungan kunci Anda (membuat gantungan kunci baru, memindahkan barang-barang yang Anda butuhkan ke dalamnya, dan memindahkannya ke yang lebih tua), jika ada artefak yang tidak perlu tertinggal di gantungan kunci lama.
ada yang menarik
sumber
Ini detail yang luar biasa. Langkah 2 harus memiliki tanda bintang - buat catatan bahwa Anda menonaktifkan ini karena Apple biasanya akan menambahkan beberapa fitur baru untuk ini dan Mac Anda akan rusak ketika itu terjadi, jadi ingatlah untuk mengaktifkannya kembali dari waktu ke waktu dan mengunjungi kembali keputusan untuk menonaktifkan sebuah daemon sistem.
bmike
Sekali lagi - jawaban fantastis yang menjelaskan cara merekayasa balik daemon apa pun dan bukan hanya ini yang tidak didokumentasikan dengan baik.
bmike
5

Program / usr / libexec / secd dikirimkan sebagai bagian dari OS X dan merupakan proses keamanan yang normal. Dokumentasi mengatakan itu berkaitan dengan "kebijakan keamanan runtime untuk proses". Anda dapat memeriksa proses terkait dengan perintah ini:ps -ef|grep sec[iud]

Di Mac saya, saya pengguna 501 sehingga Anda memiliki output ini untuk satu pengguna yang masuk:

Mac:~ bmike$ ps -ef|grep sec[iud]
    0    58     1   0 Sat12PM ??         0:56.51 /usr/sbin/securityd -i
    0   117     1   0 Sat12PM ??         0:00.15 /usr/libexec/secinitd
    0   171     1   0 Sat12PM ??         0:02.24 /usr/libexec/securityd_service
  501   205     1   0 Sat12PM ??         0:11.74 /usr/libexec/secinitd
  501  2634     1   0 Tue08PM ??         0:08.26 /usr/libexec/secd

Anda dapat melihat bahwa securityditu dimulai sebagai root (PID 58) dan kemudian sebagai pengguna (PID 205) proses ketika Anda login. Sebenarnya secdmelakukan "pekerjaan" dan bisa mendapatkan respawned bahkan ketika Anda tidak logout dan masuk. untuk menguraikan mengapa Anda menggunakan sumber daya tambahan, akan sangat sulit tanpa menggali fsusagedan beberapa perintah lain untuk mengintip proses yang sedang berjalan serta melihat file log Anda. Taruhan terbaik Anda adalah untuk mengajukan bug dengan Apple dan kemudian mendokumentasikan bagaimana Anda bisa membuat kesalahan - terutama jika Anda dapat mereproduksinya setelah reboot.

Saat ini tidak ada "halaman manual" untuk secddan untuk yang secinitdpaling sedikit. Mengajukan bug dokumentasi kepada Apple adalah salah satu cara untuk meminta agar kurangnya dokumentasi diperbaiki.

bmike
sumber
3

Dari apa yang saya ketahui tentang proses itu (yang sebenarnya bukan satu ton) adalah bahwa itu ada hubungannya dengan Keychain Mac. Apa yang dapat Anda lakukan adalah temukan di Monitor Aktivitas dan klik Cmd + I untuk mendapatkan info tentangnya.

Salah satu tip yang dapat Anda coba lakukan adalah menjalankan Keychain First Aid dengan pergi ke Keychain Access in Spotlight, membuka menu "Keychain Access", dan memilih opsi "Keychain First Aid" dari sana dan ikuti petunjuknya.

Semoga tip itu berhasil!

jaller200
sumber
Keychain First Aid mengatakan bahwa gantungan kunci saya baik-baik saja! Di ketiga komputer.
retrography
Ada opsi di El Capitan (setidaknya, mungkin ada di versi sebelumnya juga) di bawah Akses Keychain - Preferensi untuk Mengatur Ulang Default Kechain Saya "Kembali ke default pabrik dan membuat keychain" login "kosong baru. Keychain default Anda saat ini akan dipindahkan ke samping, tetapi tidak dihapus ". Segera setelah saya melakukan ini, securityd_service berubah dari 51-53% CPU menjadi 0-1.5%. Segera setelah Anda melakukannya, Anda diharuskan masuk kembali ke iCloud - Saya belum menemukan konsekuensi lain.
Oskar Austegard
1
Saya baru saja meningkatkan dari Mavericks ke Sierra dan menemukan bahwa CPU kedua berubah dari hampir 100% setelah mengatur ulang gantungan kunci seperti yang Anda sarankan. Kehilangan semua kata sandi situs web yang saya simpan, harus masuk kembali ke sinkronisasi kalender saya, dll., Tetapi setidaknya saya dapat menggunakan komputer lagi. Terima kasih.
Walter Nissen