On Mon, 18 Jan 2021 at 20:27, Hung Nguyen Gia via openindiana-discuss <[email protected]> wrote: > OI included many shells. So far I only stick with the default, bash. > But the performance is very bad. e.g: when using pkgsrc to build packages. > > As I have said on this list: pkgsrc bootstrap on OI is 4x slower than on > FreeBSD. Building packages also that slower. > > I think the problem is of the shell. Because I see it checking for something > very slowly. > > The output printed on the screen 'Checking for...' is line by line, very > slow. Meanwhile, the same thing on FreeBSD is blazing fast that I can't even > see what's going on at all. > > I'm thinking about using other shell than bash. > > But I can't test with each shell. They are too many. > > From your own experience, which shell is the fastest?
I think you're making some big assumptions about what's going on here. It feels like it would be a better idea to characterise the workload that you feel is not running well enough. You can run the pkgsrc bootstrap over and over again, on demand, so that seems a pretty easy workload to look at first. I would start by trying to see if there is an obvious bottleneck; e.g., does "mpstat 1 1" show you that all of the CPUs are 100% busy all of the time? If they are not, maybe look to see what's happening with respect to I/O; e.g., "iostat -xn 1" might show high latency or utilisation during the build. There are a _lot_ of variables to investigate when comparing two OSes. Are you using ZFS root for FreeBSD as well as for OpenIndiana? Is the pkgsrc bootstrap spawning more or less processes in parallel on each system? A lot of "configure" scripts tend to spawn a large number of processes. Perhaps our fork() is more expensive than FreeBSD fork(). You could investigate the rate and quantity of new processes created, the latency of various system calls with DTrace, etc. If a lot of CPU time is being spent in the kernel, you could use DTrace to profile stacks and render them as a Flamegraph to see if there is an obvious bottleneck. One could even imagine a scenario where the speed of the build is constrained by pipe buffer performance between the bootstrap program and the SSH daemon on the system, or the graphical console. If you redirect the build output to /dev/null or to a tmpfs file, does the build run any faster? At any rate, lots to explore. I would start by looking at what the computer is actually doing, rather than exploring replacement shells. Once you get some preliminary results, I am sure folks will be interested in your findings. Cheers. -- Joshua M. Clulow http://blog.sysmgr.org _______________________________________________ openindiana-discuss mailing list [email protected] https://openindiana.org/mailman/listinfo/openindiana-discuss
