-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
slows down very much when ignored files are too many #20
Comments
Yes, that is one of the flaws of unox - you will not be able to fix that - its cause is due to the bad fs-event implementation of apple. macfsevents and watchdog are just working around this. Are you coming from docker-sync? |
nope. just trying to sync my workspace from a mac to a rhel vm that is hosted on an ubuntu. |
you probably have better results doing docker-for-mac + osxfs + then unison under linux ( inotify ). I do that with docker-sync "native_osx". You basically mount your workspace into a docker-container and the use unison in there to sync it whereever you want. The interesting point is, that OSXFS is better in huge trees then unison and you can actually apply ignores under linux with unison inotify beside unison under linux does not need hardly any CPU |
That said, unox is limitted by what macfsevents / watchdog can get out of mac fs events, OSXFS events goes a level deeper. Especially with the new :cached / :delegated modes you will have a lot better results going over a docker-container then using native events under OSX |
Yeah, file watching can only get so good as the OS APIs allows it to be. Are you sure the build folder is really excluded? I remember that being tricky in unison. |
+1 on slow updates detection. Because of this issue, I'm running https://github.com/emcrisostomo/fswatch instead of unox to trigger unison (not integrated with the protocol, just |
I'm seeing 100% CPU usage with unox with syncing a very large directory with some large ignores on OSX. @roman-alexeev, can you share your profile that makes fswatch work? I'd like to see how that compares.
EDIT: nevermind. Looks like I also needed to add Doing it this way causes unison to restart each time a change is detected. I think that is still faster than unox. There is a major issue with using fswatch instead of unox though. Changing files on the remote system doesn't start a sync because unison isn't running there until a change is detected locally. I noticed that the 100% CPU usage is happening while rls is running since rls is modifying a bunch of files that I have unison set to ignore. To work around this, I'm using rust-lang/rls#622 to set the target dir to somewhere that unison isn't watching. This seems like a better fix than using fswatch over unox |
This happens in OS X. I have a build folder which is set to be ignored by unison. When that folder gets too big, unison syncing becomes extremely slow. Takes 3-5 minutes to finish one sync and the python unison-fsmonitor process consumes 50% of one cpu. So, as soon as a file is changed the unison-fsmonitor starts working for like 3-5 minutes and only after that, the syncing is performed.
As soon as I clean up the build folder, syncing works fine.
I have the latest unox version, just installed a few days ago. If you think this is a unison issue, let me know and I will file an issue with them instead
The text was updated successfully, but these errors were encountered: