apsd on Mac: what the push notification daemon does and why it is busy
apsd is the Apple Push Notification service daemon. It holds one quiet connection open to Apple so iMessage, FaceTime, iCloud, Mail and app notifications arrive the moment they are sent. It is normally near zero. It spikes for a few seconds after login or when your network changes, because it has to reconnect and ask Apple what it missed. A VPN that drops and reconnects, or flaky Wi-Fi, can keep it retrying. You cannot and should not quit it. If it stays high for an hour, a restart clears it.
- What it is
- Apple's push connection. One long-lived link to Apple's servers that delivers iMessages, FaceTime calls, iCloud changes and app notifications.
- Normal
- 0 to 1 percent CPU most of the day, a short spike to 20 or more percent right after login or a network change, then quiet again.
- Not normal
- Pinned high for an hour or more, or memory climbing past a few hundred megabytes and never coming back down.
- Safe to quit?
- No. It is a system daemon protected by macOS. If you force it, it relaunches at once and reconnects anyway.
- The one safe fix
- Fix the network it is fighting with: turn the VPN off and on, forget and rejoin the Wi-Fi, or restart the Mac.
What apsd does
apsd stands for Apple Push Service daemon. It is the part of macOS that keeps a single, always-on connection to Apple's push notification servers, the same APNs service that iPhones and iPads use. Instead of every app on your Mac polling Apple on its own schedule, apsd holds one connection and hands out whatever arrives: a new iMessage, an incoming FaceTime call, a change to an iCloud note or calendar, a Mail push for iCloud accounts, a Find My request, and notifications from any Mac App Store app that supports them.
It lives inside the ApplePushService framework at /System/Library/PrivateFrameworks/ApplePushService.framework/apsd, runs as root, and is launched by the system at boot. Because so much of the Mac's "things just appear" experience depends on it, Apple protects it: System Integrity Protection stops you from unloading it, and if it is killed it comes straight back.
Most of the time the connection is idle. The daemon wakes when a push arrives, delivers it to the right app, and goes back to waiting. That is why, on a healthy Mac, apsd sits at the bottom of Activity Monitor with a CPU figure of 0.0 and a memory figure of a few tens of megabytes.
What normal looks like
The pattern to expect is long stretches of nothing with short, sharp bursts. The bursts line up with moments when apsd has to re-establish its connection and catch up on anything it missed:
A reader on a Mac user group forum described the normal spike exactly: apsd jumps to the top of the CPU list for a moment after startup and then drops back to nothing. A regular there confirmed that this is expected, since the daemon is contacting Apple to see what notifications are waiting. Memory should stay in the tens of megabytes. Reports of apsd holding gigabytes are almost all from older macOS versions running in virtual machines, and they went away with updates.
Why apsd is using CPU right now
When apsd is busy, it is almost always because its connection to Apple keeps breaking and it keeps rebuilding it. Work through these in order:
- You just logged in, woke the Mac, or changed networks. This is the built-in spike. Give it a minute before doing anything.
- A VPN is dropping and reconnecting. Every time the VPN tunnel goes up or down, the Mac's network path changes and apsd has to reconnect. Some VPN clients also block or slow the ports apsd uses, so the connection never settles. Turning the VPN off for ten minutes is the quickest test.
- Wi-Fi is roaming or weak. A laptop on the edge of two access points, or on a mesh network that hands it between nodes, triggers the same reconnect over and over.
- A captive portal or proxy is in the way. Hotel and office networks that intercept traffic can leave apsd half-connected, retrying forever until you sign in to the portal.
- A stale push state after an update. Rarely, after a macOS update, apsd gets into a loop that only a restart clears. Several Apple Community threads end this way.
What it is not: apsd is not malware, not a sign someone is watching you, and not something a cleaner app can fix. It is one of the most ordinary processes on the Mac.
Is it safe to quit apsd?
You cannot really quit it, and you should not try. apsd runs as root under the protection of System Integrity Protection. Activity Monitor will let you force quit it, and it will relaunch within seconds and reconnect to Apple, which is the same work you were trying to stop. One Apple Community poster who did exactly that found the process came back and, after a day, "is running as one would expect a background process," which tells you the restart of the daemon did nothing the next reboot would not have done anyway.
Unloading it with Terminal commands is blocked on modern macOS, and on older systems it silently breaks iMessage, FaceTime and iCloud sync until you undo it. There is no setting that turns apsd off, because there is no sensible Mac without it.
Type any process name above to get the same plain-English verdict. For apsd it will always say the same thing: leave it, fix the network.
What to do, in order
- Wait one minute
If you just logged in, woke the Mac or joined a network, the spike is apsd reconnecting. It should be back to 0 percent before you finish reading this.
- Turn the VPN off, then on
If you run a VPN, disconnect it and watch apsd for a few minutes. If it calms down, the VPN was breaking the push connection. Reconnect and see whether it stays calm; if not, check the VPN app for a "split tunneling" or "allow Apple services" option.
- Rejoin the Wi-Fi
Open System Settings, click Wi-Fi, click Details next to your network and choose Forget This Network. Then join it again. This clears a stuck lease or captive portal state in one go.
- Sign out and back in to iMessage or iCloud
If notifications are also missing or late, open Messages, go to Settings, iMessage, and sign out and in. apsd re-registers with Apple when you do. Only do this if the network steps did not help.
- Restart the Mac
A restart is the one reliable fix for a daemon stuck in a bad state. If apsd is pinned again within an hour of restarting with no network changes, the problem is upstream: a router, a DNS filter, or a security tool that is interfering with Apple's push ports.
When to worry
Almost never. apsd using CPU costs you some battery while it retries, and in the worst case delays your messages, but it does not damage anything. The one real signal is time. Here is how long each state is allowed to last:
- First minuteAfter login, wake or a network change: a spike to the top of the CPU list, then quiet. Normal.
- First 15 minutesStill bursting on and off: something on the network is changing. Check VPN and Wi-Fi.
- An hourPinned high with a stable network: a stuck state. Restart the Mac.
- Every dayHigh again after every restart: a router, DNS filter or security tool is blocking Apple's push ports. Fix that, not apsd.
The hard part is noticing whether it is bursting or stuck when you only glance at Activity Monitor once. Safe to Quit watches each process over hours and tells you whether it settled on its own, which is usually the whole answer for apsd.
What people hit, in their words
“This "apsd" often spikes to 99.9% of the CPU load before dropping down to supposedly normal levels of 0.1% CPU usage.”
“It is, as far as I know, perfectly normal for APSD to spike on startup”
“I'm getting some trouble with APSD process, that is using up to 6GB of ram!”
Questions people ask
What is apsd on my Mac?
apsd is the Apple Push Service daemon, a background process that keeps one connection open to Apple's push notification servers. It is how iMessages, FaceTime calls, iCloud changes and app notifications reach your Mac without each app checking on its own. It runs on every Mac from boot, under the system account, and is protected by System Integrity Protection.
Why is apsd using high CPU?
Usually because its connection to Apple keeps dropping and it keeps reconnecting. A short spike after login or waking is normal. Sustained CPU points to a VPN that flaps, Wi-Fi that roams between access points, a captive portal, or a network filter blocking Apple's push ports. Fix the network and apsd settles on its own. A restart clears the rare stuck state.
Can I disable apsd?
Not on a modern Mac, and you would not want to. System Integrity Protection stops the daemon from being unloaded, and force quitting it from Activity Monitor only makes it relaunch. On older systems where unloading was possible, it broke iMessage, FaceTime, iCloud sync and all push notifications until it was turned back on.
Is apsd using a lot of memory a problem?
Normally apsd holds a few tens of megabytes. Reports of it reaching several gigabytes come from older macOS versions, often running in a virtual machine, and were cleared by a restart or a later update. If memory climbs steadily on a current macOS with a stable network, restart, and if it returns, update macOS and check for a security tool that intercepts network traffic.
Does apsd mean someone is watching my Mac?
No. apsd is a standard Apple component present on every Mac, and its only job is to receive notifications from Apple's servers. Seeing it in Activity Monitor, even using CPU for a moment, is not evidence of monitoring or malware. If you are worried about that separately, look at Login Items and Extensions in System Settings, not at apsd.
Sources and further reading
- apsd: Apple Push Service daemon Binary reference. Path, framework and what the daemon is for.
- Issues with APSD Mac user group thread, Jun 2017. Source of the startup-spike quotes above.
- APSD high memory usage Apple Community, Aug 2018. The 6 GB memory report and the reply on unloading.
- apspd using RAM, cfprefsd hogging CPU Apple Community, Dec 2016. Force quitting apsd and what happened after.
- What is apsd? Ask Different. Short explanation of the push service and why it is always running.