THE LENOVO X230 WEB SERVER

lenovo-x230

Now that the studio is slowly becoming better equipped. The assets available can finally be put to productive use.

The Lenovo X230 uses DDR3 and it can use a pair of memory sticks. More recently 8192MB memory has become available and some have successfully installed it to achieve 16384MB RAM.

  • Intel Core i5-3320M
  • 8GB DDR3-1600
  • 1366×768 LCD
  • Kingston SUV500MS240G

This machine even with 8192MB of memory is substantially more than the lowest cost virtual machine with Azure. It is unlikely that 8GB of RAM will ever been exceeded as the web server memory using is typically less than 1GB. This simply means the machine can handle over 1000 users all wanting a post at the same time.

The i5 CPU is dual core with hyperthreading which is typical for machines like the X230. More recent machines are less expensive but the old X230 is in hand already. There is not real need for more CPU cores with any amount of traffic imaginable.

The machine has an mSATA slot. By comparison, a 256GB SSD is over $300 with Azure and the capital cost is $100 saving $200 in the first month. More savings over time. Recent 1TB mSATA hardware has been available and prices are now lower. Azure is setup like a hyperscaler with pricing tiers that are more expensive.

Linux runs on the machine well and Windows Server also runs well. WordPress is PHP based and MySQL is the standard database which favors the standard LAMP system stack.

Linux has several ways to setup the machine as a web server. The simplest way is to make several folders on the default folder and drop the content there and point Apache there and it is live.

Rebooting Linux with the SSD takes under 15 seconds to be ready to handle traffic. When a new kernel is available the machine is rebooted to bring it online as most of the time the kernel fixes are security related. Occasionally security holes are found and they are handled quickly by the team of corporate backers.

The coronavirus shutdown has been problematic with the studio. Mail order is also affected as delivery problems are pervasive. This Lenovo machine can handle the work using a lot less power than a desktop.

LINUX

Hard disk power on hours can be read with a handy tool.

sudo apt install smartctl
sudo smartctl --all --device=auto /dev/sdb

The mSATA SSD is /dev/sdb while the hard disk bay is /dev/sda

=== START OF INFORMATION SECTION ===
Device Model:     KINGSTON SUV500MS240G
Serial Number:    50026B778354FCF6
LU WWN Device Id: 5 0026b7 78354fcf6
Firmware Version: 003056RR
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Form Factor:      mSATA
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-4, ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Sep 30 18:17:30 2021 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (    5) seconds.
Offline data collection
capabilities:                    (0x71) SMART execute Offline immediate.
                                        No Auto Offline data collection support.
                                        Suspend Offline collection upon new
                                        command.
                                        No Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        (   5) minutes.
Conveyance self-test routine
recommended polling time:        (   0) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 48
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   000    Pre-fail  Always       -       1450
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       7317
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       88
100 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       1543712
101 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       151920
170 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
171 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
174 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       54
175 Program_Fail_Count_Chip 0x0032   100   100   000    Old_age   Always       -       0
176 Erase_Fail_Count_Chip   0x0032   100   100   000    Old_age   Always       -       0
177 Wear_Leveling_Count     0x0032   096   096   000    Old_age   Always       -       1096
178 Used_Rsvd_Blk_Cnt_Chip  0x0002   100   100   000    Old_age   Always       -       0
180 Unused_Rsvd_Blk_Cnt_Tot 0x0002   100   100   000    Old_age   Always       -       611
183 Runtime_Bad_Block       0x0032   099   099   000    Old_age   Always       -       6
187 Reported_Uncorrect      0x0033   100   100   000    Pre-fail  Always       -       0
194 Temperature_Celsius     0x0022   039   100   000    Old_age   Always       -       39 (Min/Max 19/48)
195 Hardware_ECC_Recovered  0x0032   100   100   000    Old_age   Always       -       1450
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
199 UDMA_CRC_Error_Count    0x0012   100   100   000    Old_age   Always       -       0
201 Unknown_SSD_Attribute   0x0032   100   100   000    Old_age   Always       -       0
204 Soft_ECC_Correction     0x0032   100   100   000    Old_age   Always       -       1450
231 Temperature_Celsius     0x0032   096   096   000    Old_age   Always       -       4
233 Media_Wearout_Indicator 0x0032   100   100   000    Old_age   Always       -       5200
234 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       1779
241 Total_LBAs_Written      0x0032   100   100   000    Old_age   Always       -       3008
242 Total_LBAs_Read         0x0032   100   100   000    Old_age   Always       -       908
250 Read_Error_Retry_Rate   0x0032   100   100   000    Old_age   Always       -       1450

SMART Error Log Version: 0
No Errors Logged

SMART Self-test log structure revision number 0
Warning: ATA Specification requires self-test log structure revision number = 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 0
Note: revision number not 1 implies that no selective self-test has ever been run
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.