Copy link to clipboard
Copied
We noticed that when Acrobat DC latest version is started from a App-V 4.6 sequence the RdrCEF.exe process starts having trouble. Continuous CPU usage of about 10-17% per user. The process seems to restart continuously. Sometimes the process is a ghost and uses the maximum amount of memory available and still using CPU of about 10-20% per process.
We have tried WSRM but since the CPU usage is continuously changing and a new process id s created, WSRM doesn't keep up.
This is killing for the RDS servers !
When will this be fixed? We have been reading about this issue ever since the first Acrobat Reader DC came out.
Copy link to clipboard
Copied
I observe that RdrCEF is used to show HTML views for things like news, web services in Reader etc. I wild idea is that it fails if blocked by the firewall. Have you tried disabling all online services, enterprises rarely want them. Have you compared classic and continuous tracks? What is your running version (please never say “latest”)?
Copy link to clipboard
Copied
Installed version is: 18.011.20036 (AcroRdrDC1800920044_nl_NL.exe).
The Issue only seems to occur when Acrobat is started from an App-V 4.6 Sequence not when started directly. So I don't think the mentioned possible firewall solution is the issue.
Copy link to clipboard
Copied
Found something but this is not a final solution....!!!
- Starting Acrobat Reader from an App-V 4.6 Sequence
- CPU (RdrCEF.exe) starts using 15-20% CPU
- Run: [INSTALLDIR]..\AcroCEF\RdrServicesUpdater.exe /regserver
- CPU is at 0-1%
- Now as long as you only open a PDF there's no problem.
If you for example try digitally sign a PDF the CPU directly hits the 15-20% again
- You can repeat the 3rd step and the CPU will drop.
- In the end after repeatin the 3rd step between different actions in Acrobat Reader. The AcroRd32.exe will hang.
The RdrServicesUpdater.exe /regserver will change some stuff in:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Userassist\..
Still looking into the issue here....
Copy link to clipboard
Copied
Below a real dirty workaround powershell script.............
#Logging Max 7 days
$limit = (Get-Date).AddDays(-7)
$LogPath = "$env:systemroot\temp\RdrCEF"
$LogName = "RdrCEF--$(get-date -f "yyyy-MM-dd_HH-mm-ss").log"
$log = $LogPath + "\" + $LogName
Get-ChildItem -Path $LogPath -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
#Check logdir and create if not exist
If (-not( Test-Path "$LogPath" )) { New-Item -path "$LogPath" -ItemType Directory}
#Create file and start logging
New-Item -Path $LogPath -Name $LogName –ItemType File
Add-Content -Path $Log -Value "***************************************************************************************************"
Add-Content -Path $Log -Value "[$([DateTime]::Now)] Started processing"
####### Vars ############
$Exec="C:\Apps\Adobe\ReaderDC\Reader\AcroCEF\RdrServicesUpdater.exe" # running this with /regserver will stop CPU spikes for RdrCEF.EXE
$Params="/RegServer" # $Exec commandline parameter
$ProcessName = "rdrcef" #Process to watch
$MaxMemory = 3500 # Max Mem usage for $ProcessName
$MaxCPU = 10 # Max CPU usage for $ProcessName
$forCounter = "'\Process($ProcessName)\% Processor Time'" # '\Process(rdrcef)\% Processor Time'
#Main Script
While($true)
{
$Status = Start-Process $Exec -ArgumentList $Params -PassThru
If((Get-Counter '\Process(rdrcef)\% Processor Time' -ErrorAction SilentlyContinue).CounterSamples | Where-Object {$_.CookedValue -gt $MaxCPU})
{
$i++
$test=((Get-Counter '\Process(rdrcef)\% Processor Time' -ErrorAction SilentlyContinue).CounterSamples | Where-Object {$_.CookedValue -gt $MaxCPU} | Select-Object CookedValue).CookedValue
Add-Content -Path $Log -Value "[$([DateTime]::Now)] RdrCEF.exe used $test% of the CPU"
$Status = Start-Process $Exec -ArgumentList $Params -PassThru
$Status.WaitForExit()
Add-Content -Path $Log -Value "[$([DateTime]::Now)] RdrServicesUpdater.exe /RegServer has run"
}
#Check High Memory usage RdrCEF.EXE (in MB)
$t=Get-Process -Name $ProcessName -ErrorAction SilentlyContinue | Select-Object PrivateMemorySize,Id | ForEach-Object -Process {$_.PrivateMemorySize = ($_.PrivateMemorySize)/ 1024kb; $_}
Foreach($r in $t) {
If($r.PrivateMemorySize -gt $MaxMemory) {
$r.Id
Add-Content -Path $Log -Value "[$([DateTime]::Now)]Process Id:$($r.Id) uses $($r.PrivateMemorySize)MB and will be Stopped"
If($(Stop-Process -Id $r.Id -Force) -eq $True){
Add-Content -Path $Log -Value "[$([DateTime]::Now)]Process Stopped Succesfully"
}
}
}
Sleep 5
}
Copy link to clipboard
Copied
After having contact with Adobe we had to use App-V 5.x for the application (because Adobe does not support App-V 4.6).
We still faced the problem of high CPU and memory on RdrCEF.exe We found following:
- User has opened Acrobat from explorer with a pdf opened
- Now user opens a pdf document from within a App-V 5.x sequence
- New instance of Acrobat is opened...
- RdrCEF.exe starts using 10-30% CPU and a lot of memory
The issue seems to be in how Acrobat is started from the App-V Sequence. When AcroRd32.exe is called with the parameter /N the RdrCEF.exe starts using CPU and memory. If it is started without the parameter /N there is No Problem at all !
We now start de Acrobat from the App-V without the /N and users can set through Adobe Acrobat Properties screen if they want to open on a new TAB or in a new instance.
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more