Very occasionally my computer goes through a period of a few minutes when a task "running in the background" causes disk activity to go up. I can still work on my computer but operations take longer to complete so I would rather this happened at a time when I am not using the computer such as in the early hours of the morning.
When I look at the Task Scheduler I notice there are a lot of menus to expand and some tasks are triggered at a set time and some are not.
How can I place a button on my quick launch toolbar (the bar which runs along the bottom of my screen) which when clicked will pop up a window showing the top 10 tasks in order of descending disk activity?
I am not averse to doing any coding but would obviously prefer configuring existing facilities if these are available and if this is easier.
Perhaps what I am looking for is the ability to open the "Display all running tasks" pop-up in Task Scheduler but instead of having to click a button to open the Task Scheduler and then a link to show the pop-up I want to just perform one click. Ideally I also want the list sorted in order of descending disk activity so the task which causes most disk activity is at the top.
Cutting the number of operations to launch is important here because when your computer is being taken over by a resource hungry task, it takes time to reach the point where you can see what is going on and when that point is reached the activity which you want to identify has subsided to a point which allows the launch steps to complete.
I would also welcome any simple advice such as opening Task Scheduler when the activity dies down to see which task has the most page faults (or other quantity). I am not sure if looking at page faults is valid. Obviously if svchost.exe is at the top of the list and this involves a large number of services it will be difficult to stop and start each one whilst the disk is thrashing. As such I want to home in as close as possible to the culprit before taking further steps to home in.
Please note that I am up-to-date with running Windows Updates, I perform regular virus scans and I run a reputable commercial virus scanner with current file definitions. I do not suspect a virus is causing this disk activity so this question is not asking for advice on how to detect a virus although I cannot rule that possibility out. In fact when I submitted all 105 processes which I have running to VirusTotal, all came back zero except for Java Update Scheduler which came back 1/55. I interpret this to mean that it is likely that this disk activity is NOT due to a virus. In fact when I specifically submitted the Java Update Scheduler file to VirusTotal it reported that there were strong indicators suggesting that the file was safe to use.
I run Windows 7 Professional.
Place Process Explorer on the Quick Launch toolbar which runs along the bottom of your screen.
Launch it, right click the column header row to set columns, select the Process Memory tab and click Page Faults.
Drag the newly added column to appear as the first column on the left.
Click the column header to sort the contents in descending order.
Click File in the main menu and select exit.
You are now done. Whenever disk activity goes up, just click the Process Explorer icon in the Quick Launch toolbar and you will immediately see which process is causing most disk activity.
Related
I have an application whose installer is built with Install4J and when I run the Windows installer exe file the GUI doesn't appear until after about 15 seconds. During this time, there's an empty console visible to the user, and they may get the impression that nothing is happening.
What I'd like to do is simply print a message to the user, so they know the installer is running prior to the GUI appearing (or some other solution with a similar effect).
I added an action to the "Startup" section of the Install4j config that prints a message to the console. As far as I can tell, this is the earliest I can configure Install4J to do an action. It works great except that it doesn't print until after the GUI has already loaded, which defeats the purpose. It's currently the only action in the "Startup" section - moving our other startup actions to happen later didn't have any effect on how soon the message is displayed.
In the i4j_nlog_1 log file, it says what was happening during those 15 seconds before the GUI appears. ~5.5 seconds are verifying integrity, and ~7.2 seconds are extracting/creating. Ideally, I'd be able to print a hello message prior to any of that.
By default, installj4 immediately shows a native progress dialog when the installer is executed.
It is possible to deactivate that progress dialog by deselecting the "Suppress initial progress dialog" property on the "Installer" node in the "Installer->Screens & Actions" step.
TLDR: C program, hundreds of threads, Eclipse (Oxygen 3) CDT debug view with lengthy tree. How to search?
I'm debugging some software I've written (in C, FWIW) that can generate several hundred threads. About 300 of these are started at launch, and about as many others are started dynamically to perform tasks at runtime. During certain operations I can have well over 500 threads running.
In earlier versions of the software it was possible to exercise a problem to debug it in such a way that only a handful of threads were running when the failure (eg. segfault etc) occurred, so it was reasonable to just look through the thread list in the Debug view and have an understanding of what's going on. More recently I've made many more threads launch at the beginning and while that's had a huge benefit on performance, it means that at any time I'll have a list of threads that's just too long to manually look through.
How can I find a thread based on something I know about the thread, i.e. what function it was started with (passed to pthread_create())? Specifically, how can I search through the tree displayed in the Debug window? Alternatively, I've found a way to copy the contents of this view to the clipboard, but (inexplicably) this only copies what's visible, not the actual tree contents -- how can I auto-expand the entire tree so I can copy it and search in a text editor? Clicking the little arrows to expand each of hundreds of threads to their respective call stacks is just not reasonable.
I'm developing on a RHEL 6 platform (long story, migration to modernity is pending), and for the moment I've found roadblocks in upgrading beyond Eclipse Oxygen 3a (4.7.3a), so that's what I'm stuck with for now.
EDIT: I should clarify -- it's true that I can just press Ctrl-F in the Debug window, and I get a search dialog. However, and I'm seriously dropping my jaw in disbelief here, it also only searches what's visible, not the actual contents of the tree. So for this to be useful, I'd still have to expand every thread in the list manually; there still appears to be no command to do this.
It appears that there is simply no way of searching the list of threads within the Debug view in Eclipse, in a way that is actually useful. Again, the "Find" and "Copy Stack" functions (accessible via right-click) only operate on the text that's visible in the GUI view, not the real contents of the tree.
So, as far as I can tell the only way to get the information I want is to query gdb directly, through the Debugger Console view:
thread apply all bt
OF COURSE, the contents of the Debugger Console view are not directly searchable (unlike the regular Console and most other views in Eclipse), so the text listing must then be copied and pasted into some other editor and searched, to find the thread I'm looking for. Then, with that information I can scroll to it in the Debug list, expand that thread's trace, and continue debugging.
I have a very weird situation. Since a few days, the following actions will crash my Windows 10 PC (using Notes R9.01FP8):
I open my Prefs page in the Domino Designer
click on the Source tab
move to a specific location in a table
then I add a Repeat control
I then open the Properties of the Repeat control
to set the data to JavaScript...
and nothing happens, until after a few seconds: BSOD - Unexpected Kernel Mode Trap in either win32kfull.sys or ntoskrnl.exe.
Sometimes, the JavaScipt box is displayed, so I can paste my code, but a short while later the PC still crashes.
I have to say that my PC crashed a lot lately, so I reinstalled Windows and all drivers, so there might be a rotten one that causes all this. According to DriverEasy, all drivers are now up to date. The Event viewer displays a BugCheck event, but nothing relevant (to me anyway).
What I did for further analysis:
I removed Cache.ndk, it didn't help (of course)
in a copy of the XPage, the system crashes when I add the Repeat
ditto, in a different XPage
it seems to work in a different Notes database, on a different XPage
so I created a new database, copied all elements from the original database over, and still the system crashes when I add the Repeat
I'll be doing so more tests, e.g. with an empty database and just one XPage, then adding my Prefs page, or with the same database but then on a server. Actually, one could say I'm kind of lost, and stumbling around in the dark.
My questions to the XPages/Eclipse gurus:
could it be the workspace, and is there any way to reset it?
do you have any suggestions how to get this solved?
Thanks!
The Windows Creator update that MS posted does not seem to fix the Designer crash.
https://grahamacres.wordpress.com/2017/07/10/domino-designer-still-crashes-after-windows-10-creators-update/
We have a legacy server service running on a Windows 7 desktop that keeps crashing with a popup window reporting a memory error. The popup stops all processing on the machine. Once the "OK" button is clicked on the popup the system recovers and moves on. The root problem appears to be inside a compiled DLL that the application uses.
This popup usually happens between 9pm and 11pm every couple days.
It happens when no one is signed into the PC, so the popup displays in front of the CTRL+ALT+Delete message for signing in.
I can click OK and it continues processing, signing into the computer.
CHALLENGE:
This is a legacy application that will be replaced when budget allows (maybe next Summer) so there is no budget for upgrade or paying a consultant to fix the root problem.
All we need to do is click the OK button when the "Application Popup" event is thrown (logged in the Event Manager)
I know that it would be WRONG to write a script to satisfy the popup. Fixing the root cause is the CORRECT action.. but we have no support to spend money at this time. And since it's a compiled DLL, we can't fix the code.
Is there a PowerShell script that could:
Watch for a specific event "Application Popup" and if it occurs simulate pressing the ENTER key?
Run in the background, signed out of a user account.
If PowerShell isn't the answer, is there a better macro or script tool to get us by?
I know it's "bad practice" but we just need to get along until we get some budget dollars.
Powershell probably isn't the best answer in this case. I'd suggest using something like AutoIt (the WinWaitActive function would be useful in your case).
I have used AutoIt in the past and have found it very useful for Windows GUI automation.
Logged into my Windows XP SP2 computer using my normal user account (which has Local Admin privileges), when I start the BDE Administrator -- either from the Control Panel or from the BDEADMIN.EXE directly -- I never get the GUI. It shows up on my task bar, and shows up in the Task Manager, but the GUI never appears. I can close the program by right-clicking on the task bar and choosing close. (note that "never" means not within 5 minutes of launching the program)
If I log into the same exact computer using a different user account (which also has Local Admin privileges), when I start the BDE Administrator, it loads the GUI within a couple seconds.
I used to be able to use the BDE Administrator while logged in under my normal user account, so it's not like this has always been a problem.
While this issue may not be directly programming related, it does make developing and testing a pain when I have to log off and back on a couple of times just to make changes to my BDE configuration.
I am totally stumped. Any idea what might be causing this odd behavior?
One idea is that you may have had two screens running on this box and dragged the window off screen.
Just search for the registry keys that control where the window opens up and delete them. Alternatively, you should be able to right click on the program in the task bar and select Move. Then use your arrow keys to bring it back.
Regardless, I'm voting to close.