|
A few of you may know that last night 3 of my servers went down and it was 3:00am before my admins were ble to restart them (I'm that guy who needed the coffee).
What i want to know is what problems do you have your servers. Is it normal for me to have a crash a month? I have always had these problems with my servers.
Note: It isn't user error on my part because since about 2-3 years ago i rarely ever need to touch them. I have people who manage them full time.
-- modified at 11:15 Tuesday 3rd October, 2006
Brad
Australian
Have you tried Rebooting it?
|
|
|
|
|
Servers get old and start failing. We see it all the time. HDDs start losing sectors, the Motherboard starts having loose joints, network cards become flaky. We've seen it all. Typically our servers last around 3 years.
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
I remember having to solder new crystal oscillators onto network cards; the old ones used to bake nicely over time, and just 'fail' suddenly. Of course, these days, with SMT and everything-on-a-chip, it's easier and cheaper to just put in a new card
And don't get me started on loose joints - my mother always warned me to stay away from low women and loose joints, or maybe it was fast women and loose cars...
Steve S
Developer for hire
|
|
|
|
|
I have a PCI/Altera card that I'm communicating with through the PCI bus of my PC with some MDI C++ software that I developed through Visual Studio 2005.
I'm not sure if this is the right forum for this but here goes:
How does one make sure that the software/GUI gets full control of the PCI Bus bandwidth until it has completed it's task? Is there a function I can call in my C++ program prior to starting any data collection or do I have to set something in the PC OS?
In other words, I don't want the Windows 2000 handing over control to other things that want it until my program is completed. I only need about 10-12 secs of control....
Once the executable is running I actually go into task manager and set this process's priority to RealTime. I found this helped with this one PC which is running Windows 2000. However, I tried to see if I can run the same code on a different PC (same OS Windows 2000, and doing the RealTime priority) but it seems as on the original PC what took 9sec to run the new PC it took 14 sec and that's way too long. Needless to say I'm loosing data all over the place....
Please help...
Kitty5
|
|
|
|
|
afaik you can't get that level of control over the hardware. You could try a much faster dedicated PC, but windows isn't a realtime OS, and you can't force it to absolutely favor any one application over the remainder of the system. I don't know if a realtime OS (some linux variants qualify) would give you absolute control over the bus either. You could also try reducing the amount of hardware on the PCI bus. Im not sure that just PCI cards that use it though, so you'd need to research the mobo chipset to find out what if anything else is routed through it. Newerboards would probably be less likely to run devices off it instead of doing a direct Device-Northbridge-Cpu connection.
|
|
|
|
|
Hi everyone,
When I click Right button of mouse on files or folders then CPU usage is 100% I scan system for virus or spyware but they dont find any things.
Thanks
|
|
|
|
|
That sounds like you have a buggy shell extension installed. Start by looking in HKCR\*\ShellEx\ContextMenuHandlers - save a copy of that key to a .reg file, then delete the subkeys one by one until the problem goes away. If that doesn't fix it, keep searching for ContextMenuHandlers keys and repeat.
|
|
|
|
|
Hi Michael,
I see this path and It has four six keys but for ContextMenuHandlers I find many keys now i must delete all ContextMenuHandlers or no?
Thanks
|
|
|
|
|
Since the problem happens when you r-click anything, it's probably a handler in one of the keys that gets read for all files/folders, like HKCR\*, HKCR\Folder, HKCR\AllFileSystemObjects, etc. I wouldn't bother with any ContextMenuHandlers keys under an individual file type.
|
|
|
|
|
Hi,
I'm looking for program/source code/advises 4 beeginer hot wo write tool, that pints text directly on network printer(s). Something like list of printers (by IP or host name), text to print on printers (ex. "Please, send me a e-mail wit your location and contact number") and send button .
I have to find about 30 network printers (I have their IP addresses and host names.)
If You know solution, please write me, Tom
REMEMBER: don't go into light! Just follow white rabbit
|
|
|
|
|
Do you know where all your switches are? If so, just tracert the printers, and they won't be far from the switch which is likely to be the last but one item in the tracert.
|
|
|
|
|
Hi,
I just want to uninstall COM1 or COM2 Commination Device.
I can easily do it by right clicking COM2 and click COM2 from Device Manager.
But i want to do it with VB Script.
I can the read the properties with the code below.
But i want to remove the port????
[CODE]
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_SerialPort",,48)
For Each objItem in colItems
Wscript.Echo "Binary: " & objItem.Binary
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Device ID: " & objItem.DeviceID
Wscript.Echo "Maximum Baud Rate: " & objItem.MaxBaudRate
Wscript.Echo "Maximum Input Buffer Size: " & objItem.MaximumInputBufferSize
Wscript.Echo "Maximum Output Buffer Size: " & objItem.MaximumOutputBufferSize
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "OS Auto Discovered: " & objItem.OSAutoDiscovered
Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID
Wscript.Echo "Provider Type: " & objItem.ProviderType
Wscript.Echo "Settable Baud Rate: " & objItem.SettableBaudRate
Wscript.Echo "Settable Data Bits: " & objItem.SettableDataBits
Wscript.Echo "Settable Flow Control: " & objItem.SettableFlowControl
Wscript.Echo "Settable Parity: " & objItem.SettableParity
Wscript.Echo "Settable Parity Check: " & objItem.SettableParityCheck
Wscript.Echo "Settable RLSD: " & objItem.SettableRLSD
Wscript.Echo "Settable Stop Bits: " & objItem.SettableStopBits
Wscript.Echo "Supports 16-Bit Mode: " & objItem.Supports16BitMode
Wscript.Echo "Supports DTRDSR: " & objItem.SupportsDTRDSR
Wscript.Echo "Supports Elapsed Timeouts: " & objItem.SupportsElapsedTimeouts
Wscript.Echo "Supports Int Timeouts: " & objItem.SupportsIntTimeouts
Wscript.Echo "Supports Parity Check: " & objItem.SupportsParityCheck
Wscript.Echo "Supports RLSD: " & objItem.SupportsRLSD
Wscript.Echo "Supports RTSCTS: " & objItem.SupportsRTSCTS
Wscript.Echo "Supports Special Characters: " & objItem.SupportsSpecialCharacters
Wscript.Echo "Supports XOn XOff: " & objItem.SupportsXOnXOff
Wscript.Echo "Supports XOn XOff Setting: " & objItem.SupportsXOnXOffSet
Next
[/CODE]
Cem Üney
|
|
|
|
|
The best you're going to do is remove the device driver, which will disable ALL the devices that driver supports. For instance, to remove the serial port driver, you'll use WMI to get the instance of a Win32_SystemDriver class who's Name propery is "Serial". A quick and dirty script would look something like this:
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer(strServer, strNameSpace, strUserName, strPassword)
objService.Security_.impersonationlevel = 3
Set objInstance = objService.Get("Win32_SystemDriver='Serial'")
objInstance.Delete
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hi, does anyone know any resource that could guide us to use all filter in Event viewer?
|
|
|
|
|
Which API can I use to retrieve the workgroup name like GetComputerName can get the computer name?
|
|
|
|
|
NetWkstaGetInfo[^] You can use any of the WKSTA_INFO_1xx structures to get the name. You're looking for the wki10x_langroup field.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hi
I have two notebooks connect by cable (crossfire) and all disk drives are shared on both computers. Ping requests work in both ways. The OS is XP Pro. Lets call the computers "targa" and "asus".
When in the "asus" machine, I can access "targa" through "my network places" (all the shared folders show up), but when accessing from "targa" to "asus" the folder is empty (not even "targa" shared folders appear).
At first, I considered the firewall, but all seams correct, then the cable, but ping works, also a bad network configuration, but it seams that the it was working before (it just doesn't anymore).
Any suggestions will be appreciated
best regards
hint_54
|
|
|
|
|
hint_54 wrote: but when accessing from "targa" to "asus" the folder is empty
What does folder refer too? My network place? Make which share name that you connect to. Try to read this article[^] on how to share resource in windows xp.
|
|
|
|
|
Not sure which discussion board to use, but here goes . .
I've written a small app (Win32 Console App) using Visual C, which is simply a number cruncher.
It has to run through some hairy maths to fill several 256*256*256 arrays of 6 byte elements.
Took many hours to run just one so since I have a dual-processor PC I thought of using threads.
The app is purely memory intensive so the improvement was huge.
Also nice to see the Task manager showing 100% CPU usage instead of the usual 50%.
My question relates to the task manager. Why does it show memory used as just over 100Mb ? With 2 threads running they each malloc 256*256*256*6 bytes so the total for the Process should be tice that.
The memory allocation (calloc) is done within the subroutine which I pass to _beginthread.
Any comments welcome.
Barry
|
|
|
|
|
are both threads working on the same array and sharing it?
|
|
|
|
|
Dan
They are each creating an independant array.
Each thread, and I have to create 7 (256*256*256*6) arrays & write to file, has a different set of parameters for the equations which fill in the arrays.
|
|
|
|
|
One more snippet of info.
As I said I have to run the subr (thread) 7 times.
It's just now started the seventh (odd number) so only one thread is running & CPU is therefore 50%.
Now the Task Manager reports 20Mb memory in use.
This should be at least 100Mb.
Does it report the malloc'd mem at all ???
|
|
|
|
|
'Mem Usage' in Task Manager is the process working set. That's the set of physical memory pages currently used by the process.
When physical memory is tight, Windows will trim - remove pages from - the working set of processes. However, it doesn't completely discard them from memory, just sets them as available. Pages that the process has written to are put on a 'modified' list to be written to disk (to the page file, if a private memory allocation like this one). Pages not written to since last brought into the working set are put onto a 'standby' list. After written to disk - which happens after the modified list reaches 800 pages, or after 5 minutes - 'modified' pages go on the 'standby' list.
If the program then references a page that's on the standby list, a page fault still occurs (and gets counted in the page fault counters for the process) but Windows simply updates the page table to point to the page that's still in memory - it doesn't need to access the disk.
In practice almost every Windows system has 'tight' physical memory, and therefore trims working sets, because of the way that pages read from and written to disk via the file system cache end up in memory on the standby or modified list. The file system cache is simply another working set.
For completeness: there are also two other lists, the 'free' list and the 'zero page' list. The 'free' pages are not connected to any working set, so the data they contain is effectively inaccessible. The 'zero page' list contains pages that are full of zeroes - every single byte in the page is zero. Windows gives out zero pages to user-mode processes for private allocations (VirtualAlloc ) to ensure that processes can't read each others' data. For kernel-mode allocations, and where the page needs to be filled by data from disk (memory-mapped files), it uses free pages so that the effort to zero the page isn't wasted.
Pages are moved from the Standby list to the Free list if the number of pages on the free list falls below a threshold. Windows has to disconnect them from the working set they used to belong to. Pages are zeroed by a thread that only runs if a processor would otherwise be idle. It only does this if the number of zero pages falls below a threshold - otherwise the processor goes to sleep to save power.
If the free or zero list are empty when a new page is needed, Windows will first try the other one (zeroing the page if necessary). Then it tries the Standby list, then if that's empty it takes a page from the Modified list, writes it to disk, and moves it to the new working set. If the Modified list is also empty (pathological case) it then has to trim a working set to get a page it can use.
If your threads are writing from start to end of your array, the pages at the start could well be out of the working set (but still probably on the modified or standby lists) at the end of the program. Windows is supposed to pay attention to a 'maximum working set size' variable but in practice it simply trims the processes that are using the most memory. If you want to try changing this variable, call SetProcessWorkingSetSize .
|
|
|
|
|
Mike
Thanks for that - I'll have to read & digest.
The program runs six nested FOR loops feeding these six parameters plus those supplied as args to the subr/thread producing fairly random hits throughout the 256*256*256 space. So I'm not marching through from start to end.
Evn though I have a Gig of ram is XP still pageing ??
Thanks again
|
|
|
|
|
Yes, it seems like Windows is always using the page file, no matter how much physical memory is available - more physical memory means it takes longer to be swapped out, but restoring a window that was minimized for 10 minutes is always going to the disk. You can that by disabling the page file if you are sure your physical memory is enough for the OS, all applications and the disk cache.
|
|
|
|