mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-10 07:39:25 -04:00
341 lines
16 KiB
Plaintext
341 lines
16 KiB
Plaintext
TOP
|
|
Version 3.8beta1
|
|
|
|
William LeFebvre
|
|
with much help from others
|
|
|
|
Frequently Asked Questions and their Answers
|
|
|
|
|
|
|
|
GENERAL
|
|
|
|
1. What is top?
|
|
|
|
Top provies the user with a regularly updated display showing
|
|
information about the system and its top cpu-using processes. Think
|
|
of it as a full-screen "ps" output that gets updated at regular
|
|
intervals.
|
|
|
|
2. Where do I get the latest version of top?
|
|
|
|
The official site for top is "ftp.unixtop.org" in the directory
|
|
"/pub/top". Top is also a SourceForge project, and the most recent
|
|
releases are available on any of the SourceForge mirrors. The
|
|
SourceForge project page is at
|
|
http://sourceforge.net/projects/unixtop.
|
|
|
|
3. Is there a web page for top?
|
|
|
|
Yes. Point your browser at http://www.unixtop.org. It includes all
|
|
documentation, a nice interactive display which describes the various
|
|
components of the output of top, web-based retrieval of the package,
|
|
year 2000 information, and other neat stuff.
|
|
|
|
4. Is there a mailing list or on-line bulletin board for top?
|
|
|
|
There is a mailing list used for general announcements regarding top,
|
|
including new releases. This mailing list is available to sourceforge
|
|
members and can be accessed from the unixtop sourceforge project
|
|
page. Visit SourceForge and search for the project "unixtop", then
|
|
click on "mailing lists". There are also on-line forums available
|
|
through SourceForge where members can post questions and comments.
|
|
|
|
5. What about Year 2000 compliance?
|
|
|
|
Top did not experience any problems with the transition to the year
|
|
2000. A full statement concerning top and the year 2000 can be found
|
|
in the file "Y2K" included with the distribution.
|
|
|
|
6. Will there be another major release of top? Will there be a top
|
|
version 4?
|
|
|
|
I have some great ideas for the next major release of top, and I very
|
|
much want to make those ideas a reality. What I don't have much of
|
|
these days is free time. But I will keep poking at it and I hope to
|
|
have top version 4.0 ready by the fall of 2006.
|
|
|
|
7. Does top really support multi-processor systems?
|
|
|
|
On platforms that support multiple processors, top is able to detect
|
|
and correctly summarize the information about those processors. What
|
|
top does not do is break down the cpu states summary (the third line
|
|
of the display) by cpu. Instead it collects the cpu state information
|
|
from all processors and combines them in to a single line. Some
|
|
vendors include a modified version of top that presents this
|
|
information for each cpu. Top 3.7 may have this functionality but it
|
|
is not present in the standard top 3.6 release.
|
|
|
|
8. Is top under CVS control? Can I access the sources via SourceForge
|
|
CVS or Subversion?
|
|
|
|
I maintain top using subversion, not CVS. Although I utilize my own
|
|
private subversion repository, it is regularly mirrored in to the
|
|
SourceForge Subversion repository. You can access the SourceForge
|
|
repository here: https://svn.unixtop.org/unixtop/top-3.
|
|
|
|
|
|
COMPILING
|
|
|
|
9. We just upgraded our operating system to a new version and top broke.
|
|
What should we do?
|
|
|
|
Recompile it. Top is very sensitive to changes in internal kernel
|
|
data structures. It is not uncommon for a new version of the
|
|
operating system to include changes to kernel data structures.
|
|
|
|
|
|
RUNNING
|
|
|
|
10. I just finished compiling top and it works fine for root, but when I
|
|
try to run it as a regular user it either complains about files it
|
|
can't open or it doesn't display all the information it should. Did I
|
|
do something wrong?
|
|
|
|
Well, you're just not done. On many operating systems today, access
|
|
to many of the kernel memory devices and other system files is
|
|
restricted to either root or a particular group. The configure script
|
|
figures this out (usually) and makes sure that the "install" rule in
|
|
the Makefile will install top so that anyone can run it successfully.
|
|
However, you have to *install* it first. Do this with the command
|
|
"make install".
|
|
|
|
11. Top is (not) displaying idle processes and I don't (do) want it to.
|
|
|
|
This default has only changed about a dozen times, and I finally got
|
|
tired of people whining about it. Go read the manual page for the
|
|
current version and pay special attention to the description of the
|
|
"TOP" environment variable.
|
|
|
|
12. We have so much memory in our machine that the memory status display
|
|
(the fourth line) ends up being longer than 80 characters. This
|
|
completely messes up top's output. Is there a patch?
|
|
|
|
Most modules have been changed to use new memory formatting functions
|
|
which will display large values in terms of megabytes instead of
|
|
kilobytes. This should fix all occurences of this problem. Also note
|
|
that newer versions of top can use columns beyond 79, and understand
|
|
window resizes. So you can always make your window wider.
|
|
|
|
13. I tried to compile top with gcc and it doesn't work. I get
|
|
compilation errors in the include files, or I get an executable that
|
|
dumps core, or top displays incorrect numbers in some of the
|
|
displays. What's wrong?
|
|
|
|
Gnu CC likes very much to use its own include files. Not being a gcc
|
|
expert, I can't explain why it does this. But I can tell you that if
|
|
you upgrade your operating system (say from Solaris 2.6 to Solaris
|
|
2.7) after installing gcc, then the include files that gcc uses will
|
|
be incorrect, especially those found in the "sys" directory. Your
|
|
choices are: (1) rebuild and reinstall the "standard" include files
|
|
for gcc (look for scripts in the distribution called "fixincludes"
|
|
and "fixinc.svr4"), (2) compile machine.c with
|
|
"CFLAGS=-I/usr/include" then make the rest of the object files
|
|
normally, or (3) use a different compiler.
|
|
|
|
14. The cpu state percentages are all wrong, indicating that my machine
|
|
is using 95% system time when it is clearly idle. What's wrong?
|
|
|
|
This can happen if you compiled with gcc using the wrong include
|
|
files. See the previous question.
|
|
|
|
|
|
FREEBSD PROBLEMS
|
|
|
|
15. This version of top does not show individual threads with the "t" or
|
|
"H" commands. Instead it says "command not available." Why?
|
|
|
|
Previous versions of top attempted to support the display of
|
|
individual threads under FreeBSD through the use of the "t" command.
|
|
However, the FreeBSD kernel does not supply sufficient or correct
|
|
information on the individual threads within a process. So the data
|
|
that was being displayed was incorrect and misleading. Therefore, top
|
|
version 3.8 disables the use of this command to prevent the display
|
|
of incorrect information. FreeBSD 8.0 will correctly report
|
|
per-thread information and top version 3.8 supports the use of the
|
|
"t" command for version 8.0.
|
|
|
|
16. The "f" command (to display full command lines for the processes)
|
|
does not work and instead says "command not available". Why?
|
|
|
|
The current version of top is able to use sysctl to retrieve almost
|
|
all of the information it needs without having to open /dev/kmem. The
|
|
one piece of information not available via sysctl is the full command
|
|
line of each argument. If you run top as a regular user and it cannot
|
|
open /dev/kmem (in other words, it is not installed set-gid to the
|
|
kmem group) then it will disable the "f" command. Make sure the top
|
|
binary is installed with a group ownership of "kmem" and with the
|
|
set-gid bit on if you want the "f" command to work properly.
|
|
|
|
|
|
MACOSX PROBLEMS
|
|
|
|
17. I tried to configure top on my Mac OSX system and I got an error
|
|
claiming "macosx not supported". What up?
|
|
|
|
Since I don't have full time root access to a Mac OSX system I cannot
|
|
provide effective support for the platform. MacOSX uses Mach, and it
|
|
is very difficult to extract accurate system and process information
|
|
from the system. It takes a lot of trial and error, along with root
|
|
access. I have included the most up-to-date version of the macosx
|
|
module in the distribution, but I do not claim that it works. If you
|
|
want to try to use it, you can configure with "./configure
|
|
--with-module=macosx".
|
|
|
|
|
|
SUNOS PROBLEMS
|
|
|
|
18. I tried compiling top under SunOS version 4.1.x and it got compile
|
|
time errors or run time errors. Is there a patch?
|
|
|
|
If you try compiling top in a "System V environment" under SunOS
|
|
(that is, /usr/5bin is before /usr/bin on your path) then the
|
|
compilation may fail. This is mostly due to the fact that top thinks
|
|
its being compiled on a System V machine when it really isn't. The
|
|
only solution is to put /usr/bin and /usr/ucb before /usr/5bin on
|
|
your path and try again.
|
|
|
|
|
|
SOLARIS PROBLEMS
|
|
|
|
|
|
NOTE: the most common source of problems with top under Solaris is
|
|
the result of compiling it with the wrong front end. Make sure that
|
|
/usr/ucb is not on your path before attempting to compile top under
|
|
Solaris.
|
|
|
|
19. Is there somewhere I can get a pre-compiled package?
|
|
|
|
Yes. Although I don't provide pre-compiled binaries, you can get a
|
|
Sun-style package from www.sunfreeware.com.
|
|
|
|
20. Under Solaris 2, when I type "make", the system says "language
|
|
optional software package not installed." What's going on?
|
|
|
|
You tried to compile with /usr/ucb/cc. Make sure /usr/ucb is not on
|
|
your path. Furthermore, you do not have a Sun compiler installed on
|
|
your system. You need a compiler to make top. Either Sun's C compiler
|
|
or the Gnu C compiler will work fine.
|
|
|
|
21. Under Solaris 2, when I run top as root it only shows root processes,
|
|
or it only shows processes with a PID less than 1000. It refuses to
|
|
show anything else. What do I do?
|
|
|
|
You probably compiled it with /usr/ucb/cc instead of the real C
|
|
compiler. /usr/ucb/cc is a cc front end that compiles programs in BSD
|
|
source-level compatability mode. You do not want that. Make sure that
|
|
/usr/ucb is not on your path and try compiling top again.
|
|
|
|
22. Under Solaris 2, I compiled top using what I am sure is the correct
|
|
compiler but when I try to run it it complains about missing dynamic
|
|
libraries. What is wrong?
|
|
|
|
Check to see if you have LD_LIBRARY_PATH defined in your shell. If
|
|
you do, make sure that /usr/ucblib is not on the path anywhere. Then
|
|
try compiling top again.
|
|
|
|
23. Under Solaris 2, when I try to run top it complains that it can't
|
|
open the library "libucb.so.1". So I changed the LIBS line in
|
|
m_sunos5.c to include -R/usr/ucblib to make sure that the dynamic
|
|
linker will look there when top runs. I figured this was just an
|
|
oversight. Was I right?
|
|
|
|
No, you were not right. As distributed, top requires no alterations
|
|
for successful compilation and operations under any release of
|
|
Solaris 2. You probably compiled top with /usr/ucb/cc instead of the
|
|
real C compiler. See FAQ 22 for more details.
|
|
|
|
24. On my 64-bit system some processes show up with incorrect information
|
|
(such as zero memory).
|
|
|
|
If you are running a 64-bit system, then you need to make sure that
|
|
you are running the 64-bit top binary. Top's configure script
|
|
attempts to detect 64-bit systems, and will automatically generate
|
|
both 32-bit and 64-bit binaries on such systems. If you use or
|
|
install the 32-bit binary on a 64-bit system top will still run but
|
|
will not produce the correct results. This will also happen if you
|
|
configure your distribution on a 32-bit system then compile with that
|
|
configuration on a 64-bit system. You must configure and compile on
|
|
the same system. For Sparc systems the 32-bit binary will be created
|
|
in the subdirectory "sparcv7" and the 64-bit binary will be created
|
|
in the subdirectory "sparcv9". For Intel systems the directories will
|
|
be "i386" (32-bit) and "amd64" (64-bit). In all cases a copy of
|
|
/usr/lib/isaexec is made in the main directory and called "top". This
|
|
program will choose the correct binary to run from one of these
|
|
subdirectories. See isaexec(3c) for more details.
|
|
|
|
25. Can I install both 32-bit and 64-bit binaries on a central file
|
|
server and have machines which mount it automatically use the correct
|
|
one?
|
|
|
|
Yes. If you configure and compile on a 64-bit system, top's configure
|
|
script and makefile will automatically create both 32-bit and 64-bit
|
|
binaries. The "install" rule in the makefile will install these
|
|
binaries in subdirectories of /usr/local/bin appropriate to the
|
|
architecture (sparcv7/sparcv9 or i386/amd64) then create a copy of
|
|
/usr/lib/isaexec named "top" in /usr/local/bin to ensure that the
|
|
appropriate is run when a user types "top". If you make sure that you
|
|
configure and compile on a 64-bit system, then "make install" will do
|
|
the right thing.
|
|
|
|
26. This version of top show less available swap space than previous
|
|
versions. Why does it no longer match the output of the swap summary
|
|
produced with "swap -s"?
|
|
|
|
Starting with version 3.6 of top, the amount of swap space reported
|
|
by top has been changed to reflect only disk-based swap space. The
|
|
swap summary produced with "swap -s" also includes memory-based swap
|
|
space. This changed was made for several reasons. It makes the
|
|
display under Solaris more like those of other operating systems. The
|
|
display is more what users expect (except those used to previous
|
|
versions of top). Most importantly, "swap -s" gets its data via an
|
|
undocumented system interface. Now that top no longer displays that
|
|
data it can use publically documented and maintained system
|
|
interfaces to retrieve its data.
|
|
|
|
|
|
SVR4-DERIVED PROBLEMS
|
|
|
|
27. When I run top on my SVR4-derived operating system, it displays all
|
|
the system information at the top but does not display any process
|
|
information (or only displays process information for my own
|
|
processes). Yet when I run it as root, everything works fine. What's
|
|
wrong?
|
|
|
|
Your system probably uses the pseudo file system "/proc", which is by
|
|
default only accessible by root. Top needs to be installed setuid
|
|
root on such systems if it is going to function correctly for normal
|
|
users.
|
|
|
|
|
|
SVR42 PROBLEMS
|
|
|
|
28. The memory display doesn't work right. Why?
|
|
|
|
This is a known bug with the svr42 module. The problem has been
|
|
traced down to a potential bug in the "mem" driver. The author of the
|
|
svr42 module is working on a fix.
|
|
|
|
|
|
STILL STUCK
|
|
|
|
29. I'm still stuck. To whom do I report problems with top?
|
|
|
|
The most common problems are caused by top's sensitivity to internal
|
|
kernel data structures. So make sure that you are using the right
|
|
include files, and make sure that you test out top on the same
|
|
machine where you compiled it. Sun's BSD Source Compatability Mode is
|
|
also a common culprit. Make sure you aren't using either /usr/ucb/cc
|
|
or any of the libraries in /usr/ucblib. Finally, make sure you are
|
|
using the correct module. If there does not appear to be one
|
|
appropriate for your computer, then top probably will not work on
|
|
your system.
|
|
|
|
If after reading all of this file and checking everything you can you
|
|
are still stuck, then please use SourceForge to submit a support
|
|
request or a bug. Top is supported by the SourceForge project named
|
|
"unixtop". On SourceForge you will find defect tracking, a mailing
|
|
list, and on-line forums. You can also contact the author through
|
|
SourceForge.
|
|
|