Accurev SCM Performance Very Slow on Mac OSX - macos

I'm the Accurev administrator at work. I have one of my users on Mac OSX that is having really bad performance - it takes about 45 seconds between launching the app and displaying the login screen. It takes 8 seconds to run "accurev info". Our server is version 5.3a and the client is version 5.3b. We had the same issue on version 4.7. We opened a support case a month ago and have had a lot of back and forth.
Here's the hardware information
Model Name: iMac
Model Identifier: iMac11,3
Processor Name: Intel Core i7
Processor Speed: 2.93 GHz
Number Of Processors: 1
Total Number Of Cores: 4
L2 Cache (per core): 256 KB
L3 Cache: 8 MB
Memory: 8 GB
Processor Interconnect Speed: 4.8 GT/s
Boot ROM Version: IM112.0057.B00
SMC Version (system): 1.59f2
Here's the output from "accurev diag"
Basic CPU : 108233.76
Host name resolution : 286.69
Memory : 582.40
Guaranteed disk write : 135.52 MBytes/sec
Network read : 11.20 MBytes/sec, 11472.14 KBytes/sec
Available network bandwidth is equivalent to typical 100Mbit LAN
Network write : 10.72 MBytes/sec, 10973.83 KBytes/sec
Available network bandwidth is equivalent to typical 100Mbit LAN
All other application are really quick on this machine. I have a Macbook Pro with an i7 and 4GB Ram and accurev works great on it. That said, I'm not a Mac expert.
I'm at a loss and this user is really becoming frustrated. Do any of you have suggestions?
Thanks in advance for reading this question.

Could you post the support case ID so I could look into the history? My first inclination would be to isolate if it's the accurev client in general or limited to the Java GUI. How long does it take run commands like "accurev show -fx depots" from a command shell, compared to opening the list of depots in the GUI, for example?
If it turns out to be the AccuRev client in general, is it possible that there is some kind of duplexing going on from the client machine over the network? I've seen this happen via VoIP phones. The "accurev diag" output makes this seem less likely though. Have you tried having them delete their "preferences.xml" file that lives in the user's .accurev directory under their home directory?
Just some thoughts...
~James

Related

Performance issues on WSL 2

For the last two months I've (tried to) embraced WSL2 as my main development environment. It works fine with most small projects, but when it comes to complex ones, things start to slow down, making working on WSL2 impossible. With complex one I mean a monorepo with React, node, different libraries, etc. This same monorepo, on the same machine, works just fine when running it from Windows itself.
Please note that, when working on WSL2, all my files are in the linux environment; I'm not trying to access Windows files from WSL2.
I've the latest Docker Desktop installed, with WSL2 integration and kubernetes enabled. But the issue persists even with Docker completely stopped.
I've also tried to limit the memory consumption for WSL2, but that doesn't seems to fix the problem.
My machine is an Aero 15X with 16GB of ram. A colleague suggested upgrading to 32GB of ram. But before trying this, or "switching back" to Windows for now, I'd like to see if someone has any suggestions I could test out.
Thanks.
The recent Kernel version Linux MSI-wsl 5.10.16.3 starts slower than previous overall.But the root cause can be outside WSL: if you have a new NVIDIA GeForce card installed Windows gives it to eat as much memory as it can, i.e 6-16 Gb without using it. I had to limit WSL memory to 8Gb to start WSL service without OoM. Try to play with this parameter in .wslconfig in your home directory and look at the WSL_Console_Log in the same place. If the timestamps in this file are in ms my Kernel starts in 55 ms and then hangs on Networking(!!!).
I'm afraid that WSL Kernel network driver
lshw -c network
*-network
description: Ethernet interface
physical id: 1
logical name: eth0
serial: 00:15:5d:52:c5:c0
size: 10Gbit/s
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=hv_netvsc driverversion=5.10.16.3-microsoft-standard-WS duplex=full firmware=N/A ip=172.20.186.108 link=yes multicast=yes speed=10Gbit/s
is not so fast how it is expected to be

How to check IRQ latency in Linux (X86_64) for performance tuning?

Is there a way to check the interrupt processing latency in Linux kernel?
Or is there a way to check why CPU usage is only 40% in a specific configuration of Linux 4.19.138?
Background:
Currently I met a problem, I had a X86 server running either a 3rd party Linux-4.19.138 kernel (whose configuration file is about 6000 lines) or Ubuntu 20.04 X86_64 (whose configuration file is about 9500 lines long).
When running netperf test on this server , I found with the 3rd-party Linux-4.19.138 kernel, the IO latency of netperf is worse than with Ubuntu 20.04. The CPU usage is below 40% when running the 3rd party kernel, while it is about 100% when running Ubuntu 20.04.
They are using the same kernel command line and same performance profile in kernel runtime.
It seemed that the interrupt or the netserver process in the server is throttled in Linux-4.19.138.
Then, I rebuilt Ubuntu 20.04 kernel by using the short configuration file (6000 lines long), and got the similar bad results.
So it concluded that the kernel configuration made the difference.
Before comparing the 2 configurations (6000 lines vs 9500 lines), to narrow it down, my ask is, is there a way to check why CPU usage is only 40% in that configuration of 4.19.138? Or is there a way to check the interrupt processing latency in Linux kernel ?
I finally found the reason. It is from the
net.core.busy_read and
net.core.busy_poll are both to 0.
That means the socket polling is disabled, which impacts the netperf latency.
But the question changed to
In this case, the lower CPU usage is a sign that there is something different in Linux, what kind of tool or how can we should figure out what causes the CPU usage difference in 2 kernels?

Android Studio on Dual Xeon Workstation

Curious if anyone out there is doing Android Studio development on a dual Xeon machine.
I would like to know if the additional CPU gave a dramatic or visible (50% or more) boost in build performance.
You probably found out, but for others wondering: Chances are - it won't.
Did some testing with two relatively quick E2650 v4 Xeons on a largish Java + Kotlin project and Xeons were considerably slower than low core count / higher clock CPU's.
Check out the benchmarks here:
https://superuser.com/questions/1115206/will-dual-xeons-improve-android-studio-build-times/
I have tried to measure speed of Android Studio 3.1.4 on the same hardware: Macbook Pro 2011, RAM 4Gb, SSD 240GB Samsung, Core i5 2.4Ghz.
I have installed on this machine 3 different OS: Windows 10, MacOS Hight Sierra 10.13, Ubuntu 18.04.
Avarage build time (running command: gradlew clean build, gradlew clean assembleRelease) on MacOS/Ubuntu was around 30% faster than on Windows.
On my another working machine: Core i5 3.0 Ghz 7400, RAM 16Gb, SSD 250Gb. Build time takes 4.34min on Windows 10 machine.
The same project on a little bit slower processor, but with the same RAM and SSD and it is running Ubuntu 16.04 build time takes two times faster!!
Well I was shocked with results, but still I choose Windows as development machine, because it's much more comfortable for me to use comfortable and
usable keyboard and sotfware than on Unix like systems. And even if I had to choose between MacOS and Ubuntu - mac is really much easier to setup everything, and
Ubuntu is too complex to use for usual people. Choise is up to you.

Small Business Server 2011, why does it take so long to load?

I have in my company, SBS 2011, on a mother board that handles Dual Xeon Quad Core 3.2 Ghz processors (X5492), 16GB of ram, 500GB main drive, 1 TB raid, and a gigabit network...
The administrator says it takes between 10 to 15 minutes to boot, and fully load for functionality. Can someone here explain why?
I use to be an administrator at other companies and entities, including at home where I am running OS X Server.
OS X Server takes less than 5 minutes to load on a Mac Mini maxed out. Why is Windows SBS 2011 being on a vastly more expandable and more robust hardware platform (Xeon Processors compared to i5)...
My administrator tells me it's complex and I won't understand. I say nuts to that, but I let them think they know more than me.
I just can't agree that SBS 2011 is so complex of an OS that it takes more time to start up everything than it does to make a plate of nachos from scratch (including frying the chips yourself).
Can someone explain to me why it takes so long? All we are doing using it for a file sharing and email server.
The main problem seems to be that it's loading a lot of services like Exchange, SQL Server, etc. that are considerably more bloated than Mac/Linux counterparts such as MySQL.
Also, NTFS is supposed to be an error-resistant journaling filesystem like the Mac and Linux, BUT it is much more prone to corruption due to abrupt power-off shutdowns than Mac/Linux AND the filesystem check and cleanup on reboot takes an incredible amount of time compared to Mac/Linux.

XCode compiling extremely slow inside VMWare

The OSX 10.6.6 is installed inside VMware on Windows 7 host. The overall performance is great, However, the compiling time increased dramatically (1 hour against 2-3 min on pure MacOS). It's modern machine with Core i5 & 4GB RAM.
Here are the XBench results:
http://db.xbench.com/merge.xhtml?doc1=517768&doc2=1&setCookie=true
I think the problem could be in extremely slow 4k write value, but I don't know how to improve this.
Is there any way to increase performance?
UPD1: swap is not used, there is enough memory for all operations
the disk speed is also not related, since my another Macbook shows event worse results, and compiles hundreds times faster.
UPD2: problem solved, see my answer below
Sharing experience and solution.
My Xcode was running fine but when I build a project (even an empty one), it would take up to 10 minutes.
SOLUTION:
Go to Xcode -> Preference -> Source Control: Dissable Source Control
Now projects build and run in a matter of seconds.
In VMWare, you should have a setting where you can dedicate one or two cores entirely to the virtual machine. Assuming you have quad core, maybe give MacOSX 2 or 3 cores? If you have dual-core and you've allocated 1 core to the VM (and the problem still persists), i can't say much then!
It's good that your problem is solved, but I want to share my experience for improving vmware performance. Please do install VMware tools for mac os and they are present in .iso file.
Steps to install VMware tools for MAC OS:
1) Power on your VM.
2) At the right bottom they are some pop-up symbols(These are usually not present in full screen mode). Rightclick the CD/DVD symbol.
3) Click setting. In this window make sure that darwin.iso is selected.
4) Close this window and again right click CD/DVD symbol.
5) Click connect. An icon will appear with name darwin(300).
6) Inside this file tools are present. Install them!
The problem was: VERY SLOW recursive searching of include paths. If non-recursive, everything works smooth.
I also got the same problem, But i want share my personal experience here.
My CPUs RAM capacity is 4 GB, So i allocated 3.5 GB to the VMWare
because of this it was very slow the entire operating system.
So one day i clearly observed the VMWare settings, finally found the
solution. If we allocate the RAM memory more than recommended then
also your operating system hangs. For my System the recommended RAM
memory is 2048MB, after adjusting this now OS is fast.
We can adjust the RAM memory in Devices option, inside Hardware. For
clarification here i am attaching the screen shot.
I had the same problem and I fixed it as follow:
Most boost I got with changing my vmware config file to disable memory
stored in .vmem file. In my .vmx file I added :
mainMem.useNamedFile = "FALSE"
prefvmx.minVmMemPct = "100"
Setting max cores to the guest
When programming with swift and XCode. Remove all comments /* */ not really used.

Resources